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
posted @ 2024-09-07 10:07  takenika  阅读(56)  评论(0)    收藏  举报