简介
在这个挑战中,你将使用 Docker 镜像。Docker 容器镜像是一个轻量级、自包含的可执行软件包,其中包含运行应用程序所需的一切:代码、运行时环境、系统工具、系统库和设置。
在这个挑战中,你将使用 Docker 镜像。Docker 容器镜像是一个轻量级、自包含的可执行软件包,其中包含运行应用程序所需的一切:代码、运行时环境、系统工具、系统库和设置。
Docker 镜像包含镜像名称和镜像标签,其中镜像名称由仓库地址和镜像标识符组成。在本小节中,你将把他人创建的 Docker 镜像推送到自己的仓库中。
你要将 dockerhub
上的公共 ubuntu
镜像推送到你的私有仓库。
以下是你在完成此挑战后应能达成的示例:
dockerhub
上注册并登录。ubuntu:22.10
镜像到本地服务器。ubuntu:22.10
镜像的地址更改为你的仓库地址。要完成此挑战,你需要:
我们通常使用 nginx
来运行网站等静态应用程序。在本节中,你将构建自己的 Web 镜像。
你的目标是创建一个 Docker 容器镜像,并将一个简单的 Web 应用程序打包到其中,然后使用该镜像启动容器并确保它能正常访问。
以下是你在完成此挑战后应能达成的示例:
/home/labex/Code
目录下创建一个名为 index.html
的新文件,内容为 hello labex
。Dockerfile
的新文件,内容如下your_dockerhub_id/web:1.1.0
的格式构建你的 Web 镜像。dockerhub
。your_dockerhub_id/web:1.1.0
启动一个名为 web
的容器,并将端口 80
映射到主机。curl
命令访问 http://127.0.0.1
,并检查输出是否为 hello labex
。要完成此挑战,你需要:
Dockerfile
进行构建Nginx:latest
Dockerfile
中使用 EXPOSE
命令暴露端口 80
创建容器镜像通常涉及两个步骤:
本节将把这两个步骤合并到一个 Docker 文件中,以实现多阶段构建。
为了完成此挑战部分,我们在 https://github.com/joker-bai/go-hello-world.git
准备了一个 Hello World
项目。
你的目标是使用多阶段构建来制作一个容器镜像,并使用该镜像启动一个容器,确保它能正常访问。
以下是你在完成此挑战后应能达成的示例:
在 /home/labex/Code
目录下创建一个 hello-world
目录。
在该目录下创建一个 Dockerfile
,内容如下
以 your_dockerhub_id/go-hello-world:1.1.0
的格式构建 Docker 镜像。
将镜像推送到 Docker Hub。
启动一个名为 go-hello-world
的容器,并暴露端口 8080
。
访问 http://127.0.0.1:8080
检查是否正常。
要完成此挑战,你需要:
Dockerfile
进行构建恭喜你完成了此挑战的所有内容,现在你已经能够灵活地创建和管理应用程序镜像了。