## 4.1 Docker 容器简介
Docker 容器是封装应用程序及其依赖项的可执行单元。它们提供一致且隔离的环境,确保应用程序在不同系统上可靠运行。
### 4.1.1 Docker 容器的关键特性
- **隔离:** 容器在隔离的环境中运行,防止应用程序之间的干扰。
- **可移植性:** 容器打包应用程序和依赖项,使它们可以跨不同环境移植。
- **效率:** 容器共享主机操作系统内核,减少资源开销并实现快速启动。
## 4.2 创建并运行 Docker 容器
创建和运行 Docker 容器的过程涉及使用“docker run”命令以及各种选项和参数。让我们通过一个实际的例子来探讨这一点。
### 4.2.1 演示:运行简单的 Web 服务器
1. 在 Docker 容器中运行基本的 Nginx Web 服务器:
docker run -d -p 80:80 --name my-nginx nginx
2. 在浏览器中通过“http://localhost”访问 Web 服务器。 您应该看到默认的 Nginx 欢迎页面。
3. 停止并取出容器:
docker stop my-nginx
docker rm my-nginx
## 4.3 管理 Docker 容器
Docker 提供了一组命令来管理容器的整个生命周期。这些命令允许用户根据需要启动、停止、检查和删除容器。
### 4.3.1 演示:容器管理
1.列出所有正在运行的容器:
docker ps
2.查看特定容器的详细信息:
docker inspect my-nginx
3. 启动已停止的容器:
docker start my-nginx
4. 移除容器:
docker stop my-nginx
docker rm my-nginx
## 4.4 Docker 容器中的网络
Docker 提供了网络功能,允许容器相互通信以及与外部世界通信。容器可以连接到自定义网络以促进通信。
### 4.4.1 演示:创建自定义网络
1. 创建自定义桥接网络:
docker network create my-network
2. 运行连接到自定义网络的容器:
docker run -d --name container-1 --network my-network nginx
docker run -d --name container-2 --network my-network nginx
3. 同一网络中的容器可以使用容器名称相互通信。
## 4.5 使用 Docker Volume 进行数据管理
Docker 卷提供了一种保存 Docker 容器生成和使用的数据的方法。它们支持主机和容器之间以及多个容器之间的数据共享。
### 4.5.1 演示:使用 Docker 卷
1. 创建命名卷:
docker volume create my-volume
2. 运行已安装卷的容器:
docker run -d --name volume-container -v my-volume:/app nginx
3. 将文件复制到卷中:
docker cp index.html volume-container:/app
4. 验证该文件是否存在于卷中。
Docker 容器彻底改变了应用程序的开发、部署和管理方式。通过提供一致且隔离的环境,容器增强了可移植性并简化了开发生命周期。在接下来的章节中,我们将探索更高级的 Docker 功能,包括编排和安全性。