Docker使用教程(二)
Docker 批量操作
# 启动所有容器
docker start $(docker ps -a -q)
# 启动某个容器
docker start 容器名或ID
# 关闭所有容器
docker stop $(docker ps -q)
# 关闭某个容器
docker stop 容器名或ID
# 删除所有容器
docker rm $(docker ps -a -q)
Docker 端口映射
在很多场景下,我们的 Docker 容器内,要开放指定端口,以向外提供服务,这时,就需要我们配置 Docker 镜像的端口映射。
我们使用 -p 参数指定 Docker 的端口映射情况,Docker 执行端口映射命令如下:
# docker run -d -p 【物理机端口号】:【容器端口号】 【镜像名】
docker run -d -p 80:80 docker.io/httpd
可以看到,该容器正常运行,且进行了容器的80端口和本地设备的80端口的映射。
我们在本地尝试用浏览器访问,结果如下:
Docker 数据映射
Docker 的数据映射是将 Docker 容器的指定目录与本地设备的指定目录建立映射关系,Docker 容器相当于进行了该目录对本地目录的 mount 挂载。Docker 容器向该目录内写入数据就相当于向本地目录中写入数据。这样,就解决了 Docker 容器的数据存储问题,同时,由于数据存储在物理设备的目录上,因此即使 Docker 容器崩溃,Docker容器该目录的数据也不会丢失。
Docker 的数据映射使用 -v 参数来设定,Docker 执行数据映射命令如下:
# docker run -v 【物理机目录】:【容器目录】 【镜像名】
docker run -d -p 80:80 -v $PWD/www/:/usr/local/apache2/htdocs/ docker.io/httpd
在我们的本地的目录 $PWD/www/ 下写入一个 index.html 文件后,我们尝试访问 Docker 的 Apache 服务,结果如下所示:
<html>
<head>
<title>test</title>
</head>
<body>
Hello World!
</body>
</html>
Docker 命名与重命名
如果运行容器时未命名,docker 会为容器随机起一个名称。
如果我们希望能够根据应用场景,为 Docker 容器指定名称。这时,我们就需要使用 –-name 参数了。例如,执行命令:
# docker run --name 【容器自定义名称】 【镜像名】
docker run -d --name PzzDocker docker.io/httpd
有时,我们还需要为已经创建的 Docker 重新命名,此时,我们就需要使用 docker rename命令:
# docker rename 【原容器名称/容器ID】 【新的容器名称】
docker rename PzzDocker NewDocker
Docker 暂停与取消
# 暂停
docker pause 【容器ID】
# 取消暂停
docker unpause 【容器ID】
使用 docker pause 命令挂起指定容器中的所有进程,而使用 docker stop 容器内主进程会在指定时间内被杀死,默认为10s。