docker 容器的操作命令选项
▶ docker选项参数概述
下面的基本上都是docker中对容器的操作,有创建运行容器,查看容器内部的操作,查看容器本体的信息,删除容器与将容器打包成一个镜像。
▷ 运行容器-docker run - docker container run
在后面接上镜像的名字,run 的作用是运行一个新的容器。
docker run 的完整写法如下:
docker container run [OPTIONS] IMAGE [COMMAND] [ARG...]
一些选项:
| docker run 的选项 | 解释 |
|---|---|
| -h, --hostname | Container host name 作用对容器设定一个新的主机名 |
| --name | 指定容器的名字 |
| -it | 容器启动时候打开一个会话界面 |
| --rm | 当容器退出后容器和容器关联的文件系统会一起删除掉 |
| -a,--attach | 把制定的数据流(如 STDOUT 之类)连接至中终端。若未指定,则默认连接 stdout 和 stderr。若数据流未指定,而容器是以交互模式 -i 启动,则 stdin 也会被连接至于终端 |
| -d,--detach | 使容器 “分离” 模式下运行。容器会在后台运行,而命令的返回值是容器的ID |
| -i,--interactive | 保持 stdin 打开,(即使它没有被被连接至于终端)。一般与 -t 同时使用,用作启动交互式会话的容器 |
| --restart | 配置 Docker 在什么情况下尝试重新启动已退出的容器。参数为 no 意味着永远不会尝试重新启动容器;always 指不管退出状态是什么,总会尝试重新启动;on-failure 仅当退出状态不为 0 的时候才会尝试重启 ,并且可以追加一个可选参数,指定尝试重启的次数,超过重启次数就会放弃(如果没有指定,那就一直重试)。例如,docker run--restart on-failure:10 postgres 将启动 postgres 容器,并当退出值不为 0 的时候,尝试重启最多 10 次。 |
| -e,--env | 设置容器内的环境变量 |
| -v,--volume | 这个选项可以用来设置数据卷(数据卷即一个容器中的文件或目录,实际属于主机的文件系统,而非容器的联合文件系统的一部分),有两种形式的参数可供使用。第一种形式仅指定容器中的目录,Docker 会自行选定一个主机上的目录与之绑定。第二种形式除了指定容器目录,还指定与容器目录绑定的主机目录 |
| -volumes-from | 挂载指定容器拥有的数据卷 |
| --expose | 与 Dockerfile 的 EXPOSE 指令功能一样。指定容器将会使用的端口或端口范围,但并不会把端口打开。只有与 -P 参数同时使用,以及在连接容器时,才有真正意义 |
| --link | 建立一个与指定容器连接的内部网络接口 |
| -w, --workdir | 将参数的路径设置为容器的工作目录。此选项会覆盖 Dockerfile 中的 WORKDIR 指令 |
▷ 查看容器内的操作-docker diff - docker container diff
List the changed files and directories in a container᾿s filesystem since the container was created. Three different types of change are tracked:
列出在指定容器中容器内部被改变的文件或者是目录,有三种该改变的类型。
| 改变类型 | 解释 |
|---|---|
| A | A file or directory was added 被创造 |
| D | A file or directory was deleted 被删除 |
| C | A file or directory was changed 被修改 |
示列:
在一个名为 CONTAINER 的容器中进行操作:
root@CONTIANER:/# mv /bin /modify_bin
开启一个终端使用 docker diff
[root@server ~]# docker diff confident_brahmagupta
A /modify_bin
D /bin
▷ 查看容器的信息-docker container inspect
Display detailed information on one or more containers
docker inspect 用于详细显示一个或者是多个容器的信息。
| 选项 | 解释 |
|---|---|
| -f,--formant | 用于输出一个标准的模板 |
| -s,--size | 显示所有文件的大小 |
示列:
[root@server ~]# docker inspect -f "{{lower .Name}}" confident_brahmagupta
/confident_brahmagupta
过滤信息:
[root@server ~]# docker inspect confident_brahmagupta | grep IPAddress
"SecondaryIPAddresses": null,
"IPAddress": "172.17.0.2",
"IPAddress": "172.17.0.2",
过滤信息-显示容器的IP地址:
[root@server ~]# docker inspect -f {{.NetworkSettings.IPAddress}} confident_brahmagupta
172.17.0.2
▷ 删除容器-docker container rm
Remove one or more containers
用于删除一个或者是多个容器。
示列:
[root@server ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
83c81fc894b8 debian "/bin/bash" About an hour ago Exited (0) 6 seconds ago confident_brahmagupta
[root@server ~]# docker rm confident_brahmagupta
先查看容器的 NAMES,然后使用 docker rm NAMES。
删除已经停止的容器:
[root@server ~]# docker rm -v $(docker ps -aq -f status=exited)
83c81fc894b8
这里是吧 $() 里面做一个命令替换,-v 表示删除与容器关联的匿名卷。
▷ 留下容器,创建镜像-docker commmit-docker container commit
docker commit 命令用于将从容器到镜像的转换。
docker commit 容器的名字 仓库名/创建的镜像名字
示列:
[root@server ~]# docker commit confident_brahmagupta test/the_test
sha256:af4b9aabf4fd57f26822c61bf641824bffe9a01658871f3b0b35a74ffed2d419

浙公网安备 33010602011771号