[步骤] Docker 容器的使用

注意:在使用 Docker 容器之前,要先安装 Docker

正文:

内容目录:
内容一:加载并启动 Docker 镜像
1.1 在前台启动 Docker 镜像
1.1.1 在非交互模式下在前台加载并启动 Docker 镜像
1.1.1.1 在非交互模式下在前台加载并启动 Docker 镜像但不执行命令
1.1.1.1.1 在非交互模式下在前台加载并启动 Docker 镜像但不执行命令的格式
1.1.1.1.2 在非交互模式下在前台加载并启动 Docker 镜像但不执行命令的案例
1.1.1.2 在非交互模式下在前台加载并启动 Docker 镜像同时执行命令
1.1.1.2.1 在非交互模式下在前台加载并启动 Docker 镜像同时执行命令的格式
1.1.1.2.2 在非交互模式下在前台加载并启动 Docker 镜像同时执行命令的案例
1.1.2 在交互模式下在前台加载并启动 Docker 镜像
1.1.2.1 在交互模式下在前台加载并启动 Docker 镜像的格式
1.1.2.2 在交互模式下在前台启动 Docker 镜像的案例
1.2 在后台启动 Docker 镜像
1.2.1 在后台启动 Docker 镜像的格式
1.2.2 在后台启动 Docker 镜像的案例

步骤二:将容器的端口号映射宿主机的端口号
2.1 将容器的端口号映射宿主机的端口号的格式
2.2 将容器的端口映射宿主机的端口的案例

步骤三:将宿主机上的文件或目录映射到容器的文件或目录里
3.1 将宿主机上的文件或目录映射到容器的文件或目录里的格式
3.2 将宿主机上的文件或目录映射到容器的文件或目录里的案例

步骤四:查看容器列表
4.1 查看正在运行的容器列表
4.2 查看所有加载并运行过或正在运行的容器列表

步骤五:查看容器的信息
5.1 查看容器在运行的进程
5.2 查看容器的 IP 地址
5.3 查看容器的 MAC 地址

步骤六:连接某一个容器
6.1 连接接某一个容器但是退出时会关闭这个容器
6.2 连接某一个容器且退出时不会关闭这个容器
6.3 以非交互的形式连接一个容器

步骤七:重启某一个容器

步骤八:启动某一个已经停止的容器

步骤九:删除某一个容器

具体的内容:
内容一:加载并启动 Docker 镜像
1.1 在前台启动 Docker 镜像
1.1.1 在非交互模式下在前台加载并启动 Docker 镜像
1.1.1.1 在非交互模式下在前台加载并启动 Docker 镜像但不执行命令
1.1.1.1.1 在非交互模式下在前台加载并启动 Docker 镜像但不执行命令的格式
# docker run <镜像的 ID 或镜像名>

(
补充:
(1)如果使用镜像名无效就使用镜像的 ID
(2)如果镜像的 ID 只有一个 9 开头,那就只用使用 9 ,如果有 94 和 95 开头的镜像,就需要使用 94 或 95,反正需要保证它们的唯一性,否则一次性会加载并启动所有相关的镜像
(3)镜像启动了之后就变成容器了
)

1.1.1.1.2 在非交互模式下在前台加载并启动 Docker 镜像但不执行命令的案例
# docker run centos
Hello world

(补充:这里以非交互式加载并启动 centos 镜像 为例)

1.1.1.2 在非交互模式下在前台加载并启动 Docker 镜像同时执行命令
1.1.1.2.1 在非交互模式下在前台加载并启动 Docker 镜像同时执行命令的格式
# docker run <镜像的 ID 或镜像名> <镜像里的命令>

(
补充:
(1)如果使用镜像名无效就使用镜像的 ID
(2)如果镜像的 ID 只有一个 9 开头,那就只用使用 9 ,如果有 94 和 95 开头的镜像,就需要使用 94 或 95,反正需要保证它们的唯一性,否则一次性会加载并启动所有相关的镜像
(3)镜像启动了之后就变成容器了
)

1.1.1.2.2 在非交互模式下在前台加载并启动 Docker 镜像同时执行命令的案例
# docker run centos /bin/echo 'Hello world'
Hello world

(补充:这里以非交互式加载并启动 centos 镜像,并执行 /bin/echo 'Hello world' 为例)

1.1.2 在交互模式下在前台加载并启动 Docker 镜像
1.1.2.1 在交互模式下在前台加载并启动 Docker 镜像的格式
# docker run centos -t -i <镜像的 ID 或镜像名>

(
补充:
(1)如果使用镜像名无效就使用镜像的 ID
(2)如果镜像的 ID 只有一个 9 开头,那就只用使用 9 ,如果有 94 和 95 开头的镜像,就需要使用 94 或 95,反正需要保证它们的唯一性,否则一次性会加载并启动所有相关的镜像
(3)镜像启动了之后就变成容器了
(4)-i 代表要保持打开并且可以进行标准输入
(5)-t 代表要开启一个伪终端
)

1.1.2.2 在交互模式下在前台启动 Docker 镜像的案例
# docker run -t -i centos
[root@1a7d6f4fd45c /]# exit
exit

(
补充:
(1)这里以交互式加载并启动 centos 镜像,再退出为例
(2)-i 代表要保持打开并且可以进行标准输入
(3)-t 代表要开启一个伪终端
(4)默认会进入 bash 环境
)

或者:
# docker run -it centos
 bash
[root@1a7d6f4fd45c /]# exit
exit

(
补充:
(1)这里以交互式加载并启动 centos 镜像,再退出为例
(2)-i 代表要保持打开并且可以进行标准输入
(3)-t 代表要开启一个伪终端
(4)bash 代表通过 bash 命令来进入 bash 环境
)

1.2 在后台启动 Docker 镜像
1.2.1 在后台启动 Docker 镜像的格式
# docker run -tid <镜像的 ID 或镜像名>

(
补充:
(1)如果使用镜像名无效就使用镜像的 ID
(2)如果镜像的 ID 只有一个 9 开头,那就只用使用 9 ,如果有 94 和 95 开头的镜像,就需要使用 94 或 95,反正需要保证它们的唯一性,否则一次性会加载并启动所有相关的镜像
(3)镜像启动了之后就变成容器了
(4)-i 代表要保持打开并且可以进行标准输入
(5)-t 代表要开启一个伪终端
(6)-d 代表放在后台运行
)

1.2.2 在后台启动 Docker 镜像的案例
# docker run -itd centos

(
补充:
(1)这里以在后台加载并启动 centos 镜像
(2)-i 代表要保持打开并且可以进行标准输入
(3)-t 代表要开启一个伪终端
(4)-d 代表放在后台运行
)

步骤二:将容器的端口号映射宿主机的端口号
2.1 将容器的端口号映射宿主机的端口号的格式
# docker run -d -p <宿主机的端口号>:<容器的端口号> -it <镜像的 ID 或镜像名>

(
补充:
(1)需要在加载并启动镜像时执行此步骤
(2)如果镜像的 ID 只有一个 9 开头,那就只用使用 9 ,如果有 94 和 95 开头的容器,就需要使用 94 或 95,反正需要保证它们的唯一性,否则一次性会加载并启动所有相关的镜像
(3)镜像启动了之后就变成容器了
(4)-d 代表放在后台运行
(5)-p 代表要做端口映射
(6)-i 代表要保持打开并且可以进行标准输入
(7)-t 代表要开启一个伪终端
)

2.2 将容器的端口映射宿主机的端口的案例
# docker run -d -p 8080:80 -it nginx

(
补充:这里以启动 nginx 镜像,并将宿主机的 8080 端口映射到容器的 80 端口为例
)

步骤三:将宿主机上的文件或目录映射到容器的文件或目录里
3.1 将宿主机上的文件或目录映射到容器的文件或目录里的格式
# docker run -d -v <宿主机上的文件或目录>:<容器上的文件或目录> -it <镜像的 ID 或镜像名>

(
补充:
(1)需要在加载并启动镜像时执行此步骤
(2)如果镜像的 ID 只有一个 9 开头,那就只用使用 9 ,如果有 94 和 95 开头的容器,就需要使用 94 或 95,反正需要保证它们的唯一性,否则一次性会加载并启动所有相关的镜像
(3)镜像启动了之后就变成容器了
(4)-d 代表放在后台运行
(5)-v 代表要做文件或目录映射
(6)-i 代表要保持打开并且可以进行标准输入
(7)-t 代表要开启一个伪终端
)

3.2 将宿主机上的文件或目录映射到容器的文件或目录里的案例
# docker run  -d -v /tmp/web:/var/www/html -it nginx

(
补充:这里以启动 nginx 镜像,并将宿主机的目录/tmp/web 映射到容器的目录 /var/www/html 为例
)

步骤四:查看容器列表
4.1 查看正在运行的容器列表
# docker ps

4.2 查看所有加载并运行过或正在运行的容器列表
# docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                      PORTS               NAMES
e145ad3588ed        centos              "/bin/bash"         19 seconds ago      Exited (0) 17 seconds ago                       thirsty_mcnulty

步骤五:查看容器的信息
5.1 查看容器在运行的进程
# docker top <镜像的 ID 或镜像名>

(
补充:
(1)如果使用镜像名无效就使用镜像的 ID
(2)如果镜像的 ID 只有一个 9 开头,那就只用使用 9 ,如果有 94 和 95 开头的镜像,就需要使用 94 或 95,反正需要保证它们的唯一性,否则一次性会加载并启动所有相关的镜像
)

5.2 查看容器的 IP 地址
# docker inspect -f '{{.NetworkSettings.IPAddress}}' <镜像的 ID 或镜像名>

(
补充:
(1)如果使用镜像名无效就使用镜像的 ID
(2)如果镜像的 ID 只有一个 9 开头,那就只用使用 9 ,如果有 94 和 95 开头的镜像,就需要使用 94 或 95,反正需要保证它们的唯一性,否则一次性会加载并启动所有相关的镜像
)

5.3 查看容器的 MAC 地址
# docker inspect -f '{{.NetworkSettings.MacAddress}}' <镜像的 ID 或镜像名>

(
补充:
(1)如果使用镜像名无效就使用镜像的 ID
(2)如果镜像的 ID 只有一个 9 开头,那就只用使用 9 ,如果有 94 和 95 开头的镜像,就需要使用 94 或 95,反正需要保证它们的唯一性,否则一次性会加载并启动所有相关的镜像
)

步骤六:连接某一个容器
6.1 连接某一个容器但是退出时会关闭这个容器
# docker attach <镜像的 ID 或镜像名>

(
补充:
(1)如果使用镜像名无效就使用镜像的 ID
(2)如果镜像的 ID 只有一个 9 开头,那就只用使用 9 ,如果有 94 和 95 开头的镜像,就需要使用 94 或 95,反正需要保证它们的唯一性,否则一次性会加载并启动所有相关的镜像
)

6.2 连接某一个容器且退出时不会关闭这个容器
# docker exec -it <镜像的 ID 或镜像名> /bin/bash

(
补充:
(1)如果使用镜像名无效就使用镜像的 ID
(2)-i 代表要保持打开并且可以进行标准输入
(3)-t 代表要开启一个伪终端
(4)如果镜像的 ID 只有一个 9 开头,那就只用使用 9 ,如果有 94 和 95 开头的镜像,就需要使用 94 或 95,反正需要保证它们的唯一性,否则一次性会加载并启动所有相关的镜像
)

6.3 以非交互的形式连接一个容器
# docker exec -t <镜像的 ID 或镜像名> <要执行的命令>

(
补充:
(1)如果使用镜像名无效就使用镜像的 ID
(2)-t 代表要开启一个伪终端
(3)如果镜像的 ID 只有一个 9 开头,那就只用使用 9 ,如果有 94 和 95 开头的镜像,就需要使用 94 或 95,反正需要保证它们的唯一性,否则一次性会加载并启动所有相关的镜像
)

步骤七:重启某一个容器
# docker restart <容器的 ID 或镜像名>

(
补充:
(1)如果使用镜像名无效就使用镜像的 ID
(2)如果镜像的 ID 只有一个 9 开头,那就只用使用 9 ,如果有 94 和 95 开头的镜像,就需要使用 94 或 95,反正需要保证它们的唯一性,否则一次性会加载并启动所有相关的镜像
)

步骤八:启动某一个已经停止的容器
# docker stop <容器的 ID 或镜像名>

(
补充:
(1)如果使用镜像名无效就使用镜像的 ID
(2)如果镜像的 ID 只有一个 9 开头,那就只用使用 9 ,如果有 94 和 95 开头的镜像,就需要使用 94 或 95,反正需要保证它们的唯一性,否则一次性会加载并启动所有相关的镜像
)

步骤九:删除某一个容器
# docker rm <容器的 ID 或镜像名>

(
补充:
(1)如果使用镜像名无效就使用镜像的 ID
(2)如果镜像的 ID 只有一个 9 开头,那就只用使用 9 ,如果有 94 和 95 开头的镜像,就需要使用 94 或 95,反正需要保证它们的唯一性,否则一次性会加载并启动所有相关的镜像
)