Docker安装
一、Docker 运行环境要求
- CentOS 7 系统:需为 64 位,系统内核版本 ≥ 3.10。
- CentOS 6.5 及以上版本:需为 64 位,系统内核版本 ≥ 2.6.32-431。
二、Docker 安装步骤
- 安装依赖包
执行以下命令安装 Docker 所需依赖包,适配存储驱动和软件源管理:
yum install -y yum-utils device-mapper-persistent-data lvm2
- 更换 Docker 下载源为国内地址
配置阿里云 Docker 源,提升下载速度,避免官方源网络波动问题:
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
- 安装 Docker
通过 yum 命令安装 Docker CE(社区版,免费且满足日常使用需求):
yum install -y docker-ce
- 启动/关闭 Docker 服务
- 启动 Docker 服务:
systemctl start docker - 关闭 Docker 服务:
systemctl stop docker - 设置 Docker 开机自启(推荐):
systemctl enable docker - 重启 Docker 服务:
systemctl restart docker
三、Docker 常用命令
3.1 基础命令
| 功能描述 | 命令 | 说明 |
|---|---|---|
| 搜索镜像 | docker search {imageName} |
{imageName} 为镜像名称,如 mysql |
| 拉取镜像 | docker pull {imageName}[:{imageTag}] |
[:{imageTag}] 可选,指定镜像版本,默认 latest |
| 查看本地镜像 | docker images |
展示所有已拉取的本地镜像 |
| 删除镜像 | docker rmi {imageId} |
{imageId} 为镜像 ID,可通过 docker images 查看 |
| 运行容器 | docker run {imageId} |
结合参数使用,详见 3.2 运行参数 |
| 查看运行中容器 | docker ps |
仅展示当前活跃的容器 |
| 查看所有历史容器 | docker ps -a |
包含运行中、已停止的所有容器 |
| 查看容器日志 | docker logs [-f] {containerId} |
-f 可选,实时跟踪日志输出 |
| 进入容器 | docker exec -it {containerId} /bin/bash |
交互式进入容器终端,/bin/bash 为终端类型 |
| 拷贝文件 | docker cp {localPath} {containerId}:{containerPath} |
本地文件拷贝至容器内,反向拷贝可交换路径顺序 |
| 容器启停/重启 | docker start/stop/restart {containerId} |
操作已存在的容器 |
| 移除容器 | docker rm {containerId} |
容器必须处于停止状态才能移除 |
| 容器资源监控 | docker stats {容器id} |
实时查看容器 CPU、内存、网络等资源占用 |
3.2 docker run 常用运行参数
| 参数 | 功能说明 |
|---|---|
--name |
指定容器名称,便于后续操作识别 |
-d |
后台运行镜像,不占用当前终端 |
-p |
将容器内端口映射到宿主机端口,格式:宿主机端口:容器端口 |
-v |
文件/目录映射,将宿主机目录挂载到容器内,实现数据持久化 |
--privileged |
以 root 账号运行容器,解决部分容器权限不足问题 |
四、Docker 容器间通信
宿主机外访问容器应用,通过「宿主机 IP + 宿主机映射端口」实现;宿主机内容器间通信,需创建独立通信网络,确保容器间可通过网络别名互访。
4.1 新建网络
创建桥接模式网络(常用网络模式),命令格式:
docker network create -d bridge {网络名称}
说明:-d bridge 指定网络模式为桥接,{网络名称} 自定义,如 docker-net。
4.2 连接容器
运行容器时将其加入已创建的网络,同时设置网络别名,命令格式:
docker run -d --network {加入的网络名称} --network-alias {本容器的网络别名} {镜像名称}
参数说明:
--network:指定容器要加入的公共网络名称。--network-alias:设置容器在该网络中的别名,其他容器可通过该别名替代 IP 访问当前容器。
示例(运行 mysql 容器并加入网络):
docker run -d --name mysql5.7 --network docker-net --network-alias mysql -p 3306:3306 mysql:5.7

浙公网安备 33010602011771号