注意:
在使用 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 <image ID or image name>
(
补充:
1) 如果使用镜像名无效就使用镜像的 ID
2) 如果镜像的 ID 只有一个 9 开头,那就只用使用 9 ,如果有 94 和 95 开头的镜像,就需要使用 94 或 95,反正需要保证它们的唯一性,否则会一次性操作所有相关的镜像
3) 镜像启动了之后就变成容器了
)
1.1.1.1.2 在非交互模式下在前台加载并启动 Docker 镜像但不执行命令的案例
# docker run centos
(补充:这里以非交互式加载并启动 centos 镜像 为例)
1.1.1.2 在非交互模式下在前台加载并启动 Docker 镜像同时执行命令
1.1.1.2.1 在非交互模式下在前台加载并启动 Docker 镜像同时执行命令的格式
# docker run <image ID or image name> <command in image>
(
补充:
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 <image ID or image name>
(
补充:
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 <image ID or image name>
(
补充:
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 <the port number of the host>:<the port number of the container> -it <image ID or image name>
(
补充:
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 <a file or directory on the host>:<a file or directory on the container> -it <image ID or image name>
(
补充:
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 <image ID or image name>
(
补充:
1) 如果使用镜像名无效就使用镜像的 ID
2) 如果镜像的 ID 只有一个 9 开头,那就只用使用 9 ,如果有 94 和 95 开头的镜像,就需要使用 94 或 95,反正需要保证它们的唯一性,否则会一次性操作所有相关的镜像
)
5.2 显示容器的 IP 地址
# docker inspect -f '{{.NetworkSettings.IPAddress}}' <image ID or image name>
(
补充:
1) 如果使用镜像名无效就使用镜像的 ID
2) 如果镜像的 ID 只有一个 9 开头,那就只用使用 9 ,如果有 94 和 95 开头的镜像,就需要使用 94 或 95,反正需要保证它们的唯一性,否则会一次性操作所有相关的镜像
)
5.3 显示容器的 MAC 地址
# docker inspect -f '{{.NetworkSettings.MacAddress}}' <image ID or image name>
(
补充:
1) 如果使用镜像名无效就使用镜像的 ID
2) 如果镜像的 ID 只有一个 9 开头,那就只用使用 9 ,如果有 94 和 95 开头的镜像,就需要使用 94 或 95,反正需要保证它们的唯一性,否则会一次性操作所有相关的镜像
)
步骤六:连接某一个容器
6.1 连接某一个容器但是退出时会关闭这个容器
# docker attach <image ID or image name>
(
补充:
1) 如果使用镜像名无效就使用镜像的 ID
2) 如果镜像的 ID 只有一个 9 开头,那就只用使用 9 ,如果有 94 和 95 开头的镜像,就需要使用 94 或 95,反正需要保证它们的唯一性,否则会一次性操作所有相关的镜像
)
6.2 连接某一个容器且退出时不会关闭这个容器
# docker exec -it <image ID or image name> /bin/bash
(
补充:
1) 如果使用镜像名无效就使用镜像的 ID
2) -i 代表要保持打开并且可以进行标准输入
3) -t 代表要开启一个伪终端
4) 如果镜像的 ID 只有一个 9 开头,那就只用使用 9 ,如果有 94 和 95 开头的镜像,就需要使用 94 或 95,反正需要保证它们的唯一性,否则会一次性操作所有相关的镜像
)
6.3 以非交互的形式连接一个容器
# docker exec -t <image ID or image name> <command>
(
补充:
1) 如果使用镜像名无效就使用镜像的 ID
2) -t 代表要开启一个伪终端
3) 如果镜像的 ID 只有一个 9 开头,那就只用使用 9 ,如果有 94 和 95 开头的镜像,就需要使用 94 或 95,反正需要保证它们的唯一性,否则会一次性操作所有相关的镜像
)
步骤七:重启某一个容器
# docker restart <container ID or container name>
(
补充:
1) 如果使用容器名无效就使用容器的 ID
2) 如果容器的 ID 只有一个 9 开头,那就只用使用 9 ,如果有 94 和 95 开头的容器,就需要使用 94 或 95,反正需要保证它们的唯一性,否则会一次性操作所有相关的镜像
)
步骤八:启动某一个已经停止的容器
# docker stop <container ID or container name>
(
补充:
1) 如果使用容器名无效就使用容器的 ID
2) 如果镜像的 ID 只有一个 9 开头,那就只用使用 9 ,如果有 94 和 95 开头的容器,就需要使用 94 或 95,反正需要保证它们的唯一性,否则会一次性操作所有相关的镜像
)
步骤九:删除某一个容器
# docker rm <container ID or container name>
(
补充:
1) 如果使用容器名无效就使用容器的 ID
2) 如果容器的 ID 只有一个 9 开头,那就只用使用 9 ,如果有 94 和 95 开头的容器,就需要使用 94 或 95,反正需要保证它们的唯一性,否则会一次性操作所有相关的镜像
)