格拉西亚草原的 Docker 精通之路

DockerBeginner
立即练习

介绍

想象你正身处古老的格拉西亚草原,那里野马奔腾,驯马师与这些未被驯服的猛兽之间的纽带是生存的关键。你的角色是一名野马驯马师,任务是在这片辽阔的土地上,利用 Docker 高效地管理容器。

这是一个「挑战」,它与「引导实验」不同,你需要尝试独立完成挑战任务,而不是按照实验步骤来学习。挑战通常具有一定的难度。如果你觉得困难,可以与 Labby 讨论或查看解决方案。历史数据显示,这是一个 初学者 级别的挑战,通过率为 97%。它获得了学习者 100% 的好评率。

掌握容器创建

在这一步中,你将学习创建和管理 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 的荒野世界中生存至关重要。