> 文章作者:亚马逊云科技加油站/罗技123
Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。
### 镜像管理
Docker 镜像是容器运行的基础,它包含了运行容器所需的代码、运行时、库、环境变量和配置文件。
* **拉取镜像**:
```
docker pull <image_name>:<tag>
```
<!--StartFragment-->
- **查看本地镜像**:
```
docker images
```
- **删除镜像**:
```
docker rmi <image_id/image_name>:<tag>
```
- **构建镜像**:
```
docker build -t <image_name>:<tag> .
```
- **保存镜像到文件**:
```
docker save -o <path_for_save.tar> <image_name>:<tag>
```
- **加载镜像文件**:
```
docker load -i <path_to_image.tar>
```
### 容器管理
容器是 Docker 的运行实例,提供了隔离的环境来运行应用。
* **创建容器**:
```
docker create --name <container_name> <image_name>:<tag>
```
* **运行容器**:
```
docker run -d --name <container_name> <image_name>:<tag>
```
* **查看运行中的容器**:
```
docker ps
```
* **查看所有容器**:
```
docker ps -a
```
* **停止容器**:
```
docker stop <container_id/container_name>
```
* **启动容器**:
```
docker start <container_id/container_name>
```
* **删除容器**:
```
docker rm <container_id/container_name>
```
* **进入运行中的容器**:
```
docker exec -it <container_id/container_name> /bin/bash
```
### 网络管理
Docker 网络功能允许容器间通信以及容器与外部世界的通信。
* **列出网络**:
```
docker network ls
```
* **创建网络**:
```
docker network create <network_name>
```
* **连接容器到网络**:
```
docker network connect <network_name> <container_name>
```
* **断开容器与网络的连接**:
```
docker network disconnect <network_name> <container_name>
```
* **删除网络**:
```
docker network rm <network_id/network_name>
```
### 数据卷管理
通过数据卷(Volumes)或挂载(Mounts),Docker 可以实现数据的持久化和共享。
* **创建数据卷**:
```
docker volume create <volume_name>
```
* **列出数据卷**:
```
docker volume ls
```
* **删除数据卷**:
```
docker volume rm <volume_name>
```
* **查看数据卷详细信息**:
```
docker volume inspect <volume_name>
```
* **挂载数据卷到容器**:
在运行容器时使用`-v <volume_name>:<container_path>`选项。
### 高级操作
* **查看容器日志**:
```
docker logs <container_id/container_name>
```
* **复制文件到/从容器**:
```
docker cp <container_id>:<path_in_container> <path_in_host>
docker cp <path_in_host> <container_id>:<path_in_container>
```
* **查看容器内部进程**:
```
docker top <container_id/container_name>
```
* **更新容器配置**:
```
docker update --cpu-shares 512 -m 300M <container_id/container_name>
```
[![5.png](https://dev-media.amazoncloud.cn/0df9622c295f452e92e46fe2ff8b2a0f_5.png "5.png")](https://summit.amazoncloud.cn/2024/register.html?source=DSJAVfG2GS7gEk2Osm6kYXAa+8HnSEVdbCVjkuit7lE= )