介绍
想象你正身处古老的格拉西亚草原,那里野马奔腾,驯马师与这些未被驯服的猛兽之间的纽带是生存的关键。你的角色是一名野马驯马师,任务是在这片辽阔的土地上,利用 Docker 高效地管理容器。
掌握容器创建
在这一步中,你将学习创建和管理 Docker 容器的基础知识,以便在荒野草原中生存。
任务
- 创建一个名为
mynginx的 Nginx 容器,并确保它成功运行。 - 启动一个 Alpine 容器并验证其状态。
- 部署一个挂载了特定数据卷的 Ubuntu 容器(将宿主机的
~/project目录挂载到容器的/app目录)。
要求
- 你必须在
/home/labex/project目录下进行所有操作。 - 使用以下命令:
- 创建容器:
docker run - 检查容器状态:
docker ps - 挂载数据卷:
docker run -v
- 创建容器:
示例
完成任务后,docker ps 的输出应显示正在运行的容器,包括容器 ID、镜像和状态等相关信息。
labex:~/ $ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
1983f85f03d4 ubuntu "sleep 3600" 22 seconds ago Up 21 seconds ubuntu_container
4231996cae33 alpine "sleep 3600" 2 minutes ago Up 2 minutes alpine_container
519eadd3ced5 nginx "/docker-entrypoint.…" 2 minutes ago Up 2 minutes 80/tcp mynginx
容器网络与通信
在这一步中,你将深入探索容器网络与通信的世界,在草原上建立无缝的连接。
任务
- 为容器创建一个名为
mynetwork的自定义网络。 - 在该自定义网络中部署一个名为
myalpine的 Alpine 容器,并确保它能够与同一网络中基于 Python 镜像的名为mypython的容器进行通信。
要求
- 所有操作必须保持在
/home/labex/project目录下。 - 使用以下命令:
- 创建自定义网络:
docker network create - 将容器连接到网络:
docker network connect
- 创建自定义网络:
示例
任务完成后,执行 docker network ls 时应能看到该自定义网络,并且 Python 容器应能与网络内的其他容器成功通信。
查看网络:
labex:~/ $ docker network ls
NETWORK ID NAME DRIVER SCOPE
1a367e6cc4e5 bridge bridge local
91199fc6ad2e host host local
32e2857073a9 minikube bridge local
92d3b71b7efd mynetwork bridge local
1078d2c781b6 none null local
通过 ping 查看容器连接情况:
labex:~/ $ docker exec myalpine ping mypython
PING mypython (172.18.0.3): 56 data bytes
64 bytes from 172.18.0.3: seq=0 ttl=64 time=0.153 ms
64 bytes from 172.18.0.3: seq=1 ttl=64 time=0.072 ms
64 bytes from 172.18.0.3: seq=2 ttl=64 time=0.069 ms
总结
在本次挑战中,你扮演了古老草原上的野马驯马师,掌握了管理 Docker 容器的艺术。通过完成这些任务并理解解决方案,你获得了 Docker 容器管理和网络方面的核心技能,这对于在 Docker 的荒野世界中生存至关重要。



