我想做这个! 反向查找docker命令时

目录
- 1 获取 Docker 镜像列表
- 2 获取 Docker 容器列表
- 3 命名并启动 Docker 容器
- 4 在 Docker 容器和主机之间共享文件
- 5 端口转发,使 Docker 容器端口在主机上可用。
- 6 连接 Docker 容器
- 7 以分离模式启动 Docker 容器
- 8 在前台运行 Docker 容器并运行任何命令
- 9 在前台启动一个 Docker 容器,并连接到该 Docker 容器。
- 10 在 Docker 容器启动时设置环境变量
- 11 连接到正在运行的 Docker 容器
- 12 我想在 Docker 容器中运行 shell 命令。
- 13 我想停止一个 Docker 容器
- 14 我想删除一个 Docker 容器
- 15 我想删除所有 Docker 容器。
- 16 我想删除一个 Docker 镜像。
- 17 我想了解 Docker 容器的相关信息
- 18 如果您想获取 Docker 容器使用的 IP 地址(这会附带一些额外信息,但足以达到目的),
你好。
我是Mandai,负责Wild 开发团队。
我经常忘记 Docker 命令,所以一气之下写下了这个。
现在我再也不会忘记了。
获取 Docker 镜像列表
Docker镜像
获取 Docker 容器列表
# 仅显示当前正在运行的 Docker 容器 docker ps # 显示所有 Docker 容器(包括已停止的 Docker 容器) docker ps -a # 仅显示 Docker 容器 ID docker ps -q
“docker ps -q”本身没有用处,但在批量删除docker容器时很有用。
一开始可能很难想象 Docker 镜像和 Docker 容器之间的区别,但这就像物理 CD 和 ISO 文件之间的关系(这很难理解)。
命名并启动 Docker 容器
docker run --name [容器名称]
如果给 Docker 容器命名,则必须先使用“docker rm”命令将其删除,然后才能启动同名的 Docker 容器。
在 Docker 容器和主机之间共享文件
docker run -v [主机目录路径]:[docker 容器目录路径]
端口转发,使 Docker 容器端口在主机上可用。
docker run -p [主机端口号]:[docker 容器端口号]
连接 Docker 容器
docker run -link [docker 容器名称或 ID][:[别名]]
当你的 Docker 容器没有名称,或者 Docker 容器名称非常长时,别名就很有用。
其机制很简单,就是使用 hosts 文件。如果您比较 hosts 文件,您会看到以下内容:
# 启动要连接的 MySQL 容器 $ docker run -d --name test -e MYSQL_ROOT_PASSWORD=root mysql:latest 529c5facaed9694dbcb36e9e3d3eae0350e26e182f70c72b06d2914dcf8c0222 # 使用链接目标中指定的名称和别名启动 Docker 容器 $ docker run -it --link test:db php:latest cat /etc/hosts 127.0.0.1 localhost ::1 localhost ip6-localhost ip6-loopback fe00::0 ip6-localnet ff00::0 ip6-mcastprefix ff02::1 ip6-allnodes ff02::2 ip6-allrouters 172.17.0.3 db 529c5facaed9 test 172.17.0.4 ffae57a81bc1 # 仅指定名称作为链接目标启动 Docker 容器 $ docker run -it --link test php:latest cat /etc/hosts 127.0.0.1 localhost ::1 localhost ip6-localhost ip6-loopback fe00::0 ip6-localnet ff00::0 ip6-mcastprefix ff02::1 ip6-allnodes ff02::2 ip6-allrouters 172.17.0.3 test 529c5facaed9 172.17.0.4 128c598dea8a
区别在于别名是否列在 hosts 文件中。
以分离模式启动 Docker 容器
docker run -d [docker 镜像名称]
分离模式是指容器不进入宿主机环境,而是在后台运行的状态。
我原以为它是一个守护进程。
在前台运行 Docker 容器并运行任何命令
docker run [docker 镜像名称] [命令]
在前台启动一个 Docker 容器,并连接到该 Docker 容器。
docker run -it [docker 镜像名称] [任何 shell,例如 /bin/bash]
`-i` 选项会将标准输入 (STDIN) 连接到指定的 Docker 容器。换句话说,控制台的输入将流入指定的 Docker 容器。
如果您使用 `docker run -i hogehoge /bin/bash`,您可以输入控制台命令,但这些命令不会显示在屏幕上。
`-t` 选项会为 Docker 容器分配一个 TTY(终端)。如果没有此选项,即使您已连接 Docker 容器,也无法在容器内看到控制台。例如,
如果您运行 `docker run -t hogehoge /bin/bash`,您会在 Docker 容器内看到提示符,但输入的内容不会显示在屏幕上。
因此,要在 Docker 容器内工作,您需要以上两种选项。
在 Docker 容器启动时设置环境变量
docker run -e [变量名=值]
这样就可以指定 MySQL 的 root 密码了。
docker run -e MYSQL_ROOT_PASSWORD=root
连接到正在运行的 Docker 容器
docker attach [docker 容器 ID]
要从 Docker 容器中分离,请使用快捷键 CTRL + P,Q 返回主机。
我想在 Docker 容器中运行 shell 命令。
docker exec [docker 容器 ID] [/bin/bash 或其他要启动的 shell]
我想停止一个 Docker 容器
docker stop [docker 容器 ID]
我想删除一个 Docker 容器
docker rm [docker 容器 ID]
我想删除所有 Docker 容器。
docker rm $(docker ps -aq)
这是在子 shell 中获取 Docker 容器 ID 的一种方法。`docker ps` 命令的 `-q` 选项是最佳使用场景。
我想删除一个 Docker 镜像。
docker rmi [docker 镜像名称]
我想了解 Docker 容器的相关信息
docker inspect [docker 容器 ID]
如果您想获取 Docker 容器使用的 IP 地址(这会附带一些额外信息,但足以达到目的),
docker inspect [docker container ID] | grep IPAddress
就是这样。
2