Docker 容器创建
介绍
Docker 是一个开源平台,用于自动化应用程序的部署、扩展和管理。它通过容器化技术将应用程序及其依赖项打包在一起,确保在任何环境中都能一致运行。容器是轻量级的、可移植的,并且与主机系统隔离,这使得它们非常适合开发和部署。
在本教程中,我们将学习如何使用 Docker 创建容器。我们将从基本命令开始,逐步深入,最后通过实际案例展示如何在实际场景中使用这些知识。
前提条件
在开始之前,请确保你已经安装了 Docker。你可以通过以下命令检查 Docker 是否已安装:
docker --version
如果 Docker 已安装,你将看到类似以下的输出:
Docker version 20.10.7, build f0df350
如果没有安装,请参考 Docker 官方文档 进行安装。
创建 Docker 容器
1. 拉取镜像
在创建容器之前,我们需要一个 Docker 镜像。镜像是容器的模板,包含了运行应用程序所需的所有文件和依赖项。
你可以使用 docker pull
命令从 Docker Hub 拉取一个镜像。例如,拉取官方的 nginx
镜像:
docker pull nginx
拉取完成后,你可以使用以下命令查看本地镜像列表:
docker images
输出将显示类似以下内容:
REPOSITORY TAG IMAGE ID CREATED SIZE
nginx latest 4cdc5dd7eaad 2 weeks ago 133MB
2. 创建容器
有了镜像后,我们可以使用 docker run
命令创建一个容器。以下是一个简单的例子:
docker run --name my-nginx -d nginx
--name my-nginx
:为容器指定一个名称,这里是my-nginx
。-d
:以“分离模式”运行容器,即在后台运行。nginx
:指定要使用的镜像。
运行后,你可以使用以下命令查看正在运行的容器:
docker ps
输出将显示类似以下内容:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
a1b2c3d4e5f6 nginx "/docker-entrypoint.…" 5 seconds ago Up 4 seconds 80/tcp my-nginx
3. 进入容器
有时你可能需要进入容器内部进行操作。可以使用 docker exec
命令:
docker exec -it my-nginx /bin/bash
-it
:以交互模式运行,并分配一个伪终端。my-nginx
:容器名称。/bin/bash
:在容器内运行的命令,这里是启动一个 Bash shell。
进入容器后,你可以像在普通 Linux 系统中一样执行命令。退出容器时,只需输入 exit
。
4. 停止和删除容器
要停止正在运行的容器,可以使用 docker stop
命令:
docker stop my-nginx
要删除已停止的容器,可以使用 docker rm
命令:
docker rm my-nginx
实际案例
假设你正在开发一个 Web 应用程序,并希望使用 Docker 来运行你的应用程序。以下是一个简单的案例:
- 创建一个
Dockerfile
,定义你的应用程序环境:
FROM node:14
WORKDIR /app
COPY package.json .
RUN npm install
COPY . .
CMD ["node", "app.js"]
- 构建镜像:
docker build -t my-web-app .
- 运行容器:
docker run --name my-app -d -p 3000:3000 my-web-app
-p 3000:3000
:将主机的 3000 端口映射到容器的 3000 端口。
现在,你的应用程序将在 http://localhost:3000
上运行。
总结
在本教程中,我们学习了如何使用 Docker 创建容器。我们从拉取镜像开始,逐步讲解了如何创建、进入、停止和删除容器。最后,我们通过一个实际案例展示了如何在实际开发中使用 Docker。
附加资源
练习
- 拉取
ubuntu
镜像并创建一个名为my-ubuntu
的容器。 - 进入
my-ubuntu
容器并安装curl
。 - 停止并删除
my-ubuntu
容器。
通过完成这些练习,你将更深入地理解 Docker 容器的创建和管理。