docker的常用操作
一、镜像的操作:
1、在仓库搜索镜像:docker search [OPTIONS] IMAGE
1 | 搜索镜像 |
2、从仓库拉取镜像:docker pull IMAGE[:TAG]
1 | [root@server ~]$ docker pull ubuntu:18.04 |
3、查看本地镜像:
1 | [root@server ~]$ docker images |
3、删除镜像:docker rmi [OPTIONS] IMAGE ID or REPOSITORY [IMAGE…]
1 | 删除名为ubuntu的镜像 |
二、容器的操作:
1、创建容器:docker create [OPTIONS] IMAGE [COMMAND] [ARG…]
1 | [root@server ~]$ docker create -v /home/docker:/docker --name docker ubuntu:18.04 |
2、创建并启动容器:docker run [OPTIONS] IMAGE [COMMAND] [ARG…]
docker run命令是docker create命令和docker start命令的合成,常用参数有:
-d 后台运行容器,并返回容器ID;
-i 以交互模式运行容器,通常与 -t 同时使用;
-p 端口映射,格式为:主机(宿主)端口:容器端口;
-t 为容器重新分配一个伪输入终端,通常与 -i 同时使用;
-v 绑定数据卷;
–name 为容器指定一个名称;
1 | [root@server ~]$ docker run -p 80:80 -v ./nginx-html:/usr/share/nginx/html -d --name nginx nginx:latest |
上面命令含义为:使用镜像nginx:latest,以后台模式启动一个容器,将容器的80端口映射到主机的80端口,将容器的/usr/share/nginx/html目录映射到主机目录下的docker中的nginx-html数据卷中,并取名为nginx。
3、查看已创建的运行中的容器:
1 | [root@server ~]$ docker ps |
4、查看已创建的所有容器(包括未运行的):
1 | [root@server ~]$ docker ps -a |
5、启动/停止/重启容器:docker start/stop/restart
1 | 启动CONTAINER ID为97f1d3fc38c0的容器 |
6、删除容器:docker rm [OPTIONS] CONTAINER ID or NAMES [CONTAINER…]
1 | 删除CONTAINER ID为97f1d3fc38c0的容器 |
三、容器的修改和保存
1、进入到正在运行的容器:docker exec [OPTIONS] CONTAINER ID or NAMES COMMAND [ARG…]
1 | 进入容器名为nginx的容器 |
2、退出容器:
1 | [root@server ~]$ exit |
3、将修改后的容器进行提交:docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]
主要参数:
–author, -a 作者(如: “zhangsan test@mail.com”)
–change, -c 将Dockerfile指令应用于创建的镜像
–message, -m 提交的信息
–pause, -p 提交期间暂停容器
1 | [root@server ~]$ docker commit -a "zhangsan" -m "first commit" c3f279d17e0a ubuntu:latest |
四、宿主主机与容器之间的文件传输
1、将容器中的文件拷贝到宿主主机:docker cp [OPTIONS] CONTAINER[ID or NAMES]:SRC_PATH DEST_PATH
1 | 将容器名为php的/data目录中的文件拷贝到宿主主机的/home/test |
2、将宿主主机中的文件拷贝到容器中:docker cp [OPTIONS] SRC_PATH| CONTAINER[ID or NAMES]:DEST_PATH
1 | 将宿主主机/home/test文件拷贝到容器ID为a175b4a2fd94的/data目录中 |
五、端口映射
将宿主主机端口映射到容器端口,解决客户端发过来的请求与容器间的交互。
1、创建容器时,通过“-p”参数进行端口映射:
docker run -itd -p 宿主机端口号:容器端口号
1 | [root@server ~]$ docker run -itd --name nginx -p 80:80 -p 443:443 nginx |
2、查看端口映射:docker port CONTAINER ID or NAMES
1 | [root@server ~]$ docker port nginx |
六、文件挂载
将宿主主机的文件挂载到容器里面,在本地修改文件后,容器里的文件也会进行同步,解决宿主机与容器之间的交互,需要频繁进行文件修改的话,进行文件挂载是个不错选择。文件挂载可以创建容器时通过“-v ”或“–volume”进行指定。
具体形式为:
docker run -itd -v /宿主主机/文件目录/文件名:/容器/目录/文件名
docker run -itd -v /宿主主机/文件目录:/容器/目录
例如:
1 | [root@server ~]$ docker run -itd --name nginx -p 80:80 -v /data/web:/usr/share/nginx/html nginx |
七、信息查询
1、查看docker的系统使用信息:docker info [OPTIONS]
1 | [root@server ~]$ docker info |
2、查看docker的版本信息:docker version [OPTIONS]
1 | [root@server ~]$ docker version |
3、查看容器/镜像的元数据:docker inspect [OPTIONS] NAME|ID [NAME|ID…]
1 | [root@server ~]$ docker inspect 9632e541ba2f |
八、Docker的磁盘管理
对docker磁盘进行管理,如prune命令的使用,如何删除未使用的镜像和未使用的容器等操作,可以具体查看《docker的磁盘管理以及清理》。