Docker - 容器和宿主机
你好,有抱负的技术爱好者们!我很高兴与你们一起开始这段Docker之旅。作为一位有着多年经验的虚拟教师,我将引导你们进入容器和宿主机的精彩世界。如果你是编程新手,不用担心——我们将从基础开始,逐步深入学习。让我们开始吧!

Docker 镜像
想象一下你正在为旅行打包。你会创建一个包含所需物品的清单,对吧?Docker镜像正是这样的东西——它是容器运行所需的一切的蓝图。它就像是你应用的食谱,包括代码、运行时环境、库和系统工具。
创建你的第一个Docker镜像
让我们为一个“Hello, World!”应用程序创建一个简单的Docker镜像:
# Dockerfile
FROM python:3.9-slim
WORKDIR /app
COPY . /app
CMD ["python", "hello.py"]现在,让我们来分解一下:
- 
FROM python:3.9-slim:这就好比说,“我想从一个最小化的Python 3.9环境开始。”
- 
WORKDIR /app:我们在设置工作空间,就像为我们的项目创建一个新文件夹。
- 
COPY . /app:我们在将我们的本地文件复制到容器中。
- 
CMD ["python", "hello.py"]:这是当我们启动容器时将运行的命令。
要构建这个镜像,我们会运行:
docker build -t my-hello-world .运行容器
现在我们有了镜像,让我们让它活起来!运行一个容器就像启动一个预装了你的应用程序的虚拟计算机。
基本容器运行
docker run my-hello-world这个命令将根据我们的my-hello-world镜像启动一个容器,并运行hello.py脚本。
交互模式
有时,你可能想与你的容器交互。这就好比在容器内直接打开一个终端:
docker run -it my-hello-world /bin/bash-it标志使容器具有交互性,而/bin/bash则启动了一个bash shell。
列出所有容器
在使用Docker的过程中,你会创建多个容器。跟踪它们是很重要的。这就好比检查你的计算机上当前正在运行哪些应用程序。
docker ps这个命令显示所有正在运行的容器。要查看包括停止在内的所有容器:
docker ps -a下面是一个docker ps选项的便捷表格:
| 选项 | 描述 | 
|---|---|
| -a, --all | 显示所有容器(默认只显示正在运行的) | 
| -q, --quiet | 只显示容器ID | 
| -s, --size | 显示总文件大小 | 
| --format | 使用Go模板格式化显示容器 | 
停止容器
就像在计算机上关闭一个应用程序一样,当你完成容器的工作时,你可以停止Docker容器。
温和停止
docker stop <container_id>这会发送一个SIGTERM信号,允许容器优雅地关闭。
强制停止
docker kill <container_id>这就像强制退出一个应用程序。当docker stop不起作用时使用它。
删除容器
停止容器后,你可能想要完全移除它:
docker rm <container_id>小贴士:你可以将停止和删除合并为一个命令:
docker rm -f <container_id>结论
恭喜你!你已经迈出了进入Docker容器和宿主机世界的第一步。记住,使用Docker就像管理一群小巧、专业的计算机。每个容器都是一个独立的运行环境,能够跨任何系统一致地运行你的应用程序。
在我们结束之前,这里有一个有趣的类比:Docker容器就像食品卡车。每个卡车(容器)都有制作和提供其特色菜肴(运行你的应用程序)所需的一切。你可以轻松地移动这些卡车,启动它们,或者在需要时将它们收起来。
在下一课中,我们将更深入地探讨Docker网络和数据持久性。在此之前,祝你在容器化的道路上愉快!
Credits: Image by storyset
