一、安装docker
以下是在 CentOS 7 上安装 Docker 的完整步骤:
1. 卸载旧版本(如有)
如果系统存在旧版 Docker(如 docker
或 docker-engine
),请先卸载:
sudo yum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \ docker-logrotate \ docker-engine
2. 安装依赖工具
安装必要的工具和存储驱动依赖:
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
3. 添加 Docker 官方仓库
使用 yum-config-manager
添加 Docker 官方仓库:
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
在执行命令sudo yum install -y docker-ce docker-ce-cli containerd.io告知我 GPG key retrieval failed: [Errno 14] curl#35 - "TCP connection reset by peer" 解决办法是:
方法 1:更换为国内镜像源(推荐)
使用国内镜像源(如阿里云、清华大学源)替代 Docker 官方源,解决网络问题。
-
删除原有 Docker 仓库配置:
sudo rm -f /etc/yum.repos.d/docker-ce.repo
-
添加阿里云 Docker 镜像源:
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
-
清理并重建 YUM 缓存:
sudo yum clean all
sudo yum makecache -
重新安装 Docker:
sudo yum install -y docker-ce docker-ce-cli containerd.io
4. 安装 Docker 引擎
更新仓库缓存并安装最新版 Docker:
sudo yum makecache fast sudo yum install -y docker-ce docker-ce-cli containerd.io
5. 启动 Docker 服务
安装完成后,启动 Docker 并设置开机自启:
sudo systemctl start docker # 启动服务 sudo systemctl enable docker # 开机自启
6. 验证安装
检查 Docker 版本和运行状态:
docker --version # 输出版本信息(如 Docker 20.10.17) sudo systemctl status docker # 确认服务状态为 "active (running)"
7. 运行测试容器
执行一个简单的容器验证 Docker 是否正常工作:
sudo docker run hello-world
-
如果看到
Hello from Docker!
的欢迎信息,表示安装成功。
常见问题解决
权限问题
默认需要 sudo
执行 Docker 命令。若希望普通用户直接使用 Docker,将用户加入 docker
组:
sudo usermod -aG docker $USER # 将当前用户加入 docker 组 newgrp docker # 刷新用户组(或重新登录)
镜像加速(国内用户)
编辑 Docker 配置文件 /etc/docker/daemon.json
,添加镜像加速器地址(如阿里云):
json
{ "registry-mirrors": ["https://your-mirror-id.mirror.aliyuncs.com"] }
重启服务生效:
sudo systemctl daemon-reload sudo systemctl restart docker
防火墙/SELinux
如果遇到网络或权限问题,可临时关闭防火墙和 SELinux:
sudo systemctl stop firewalld # 关闭防火墙 sudo setenforce 0 # 临时禁用 SELinux
二、基础使用
1. 运行容器
# 拉取镜像(如未本地存在)
docker pull nginx:latest
# 运行容器(前台模式)
docker run nginx
# 后台运行容器,映射端口 80 -> 主机 8080
docker run -d -p 8080:80 --name my_nginx nginx
# 进入运行中的容器
docker exec -it my_nginx /bin/bash
2. 管理容器
# 查看运行中的容器 docker ps # 查看所有容器(包括已停止的) docker ps -a # 停止/启动/删除容器 docker stop my_nginx docker start my_nginx docker rm my_nginx # 查看容器日志 docker logs my_nginx
3. 管理镜像
# 查看本地镜像 docker images # 删除镜像 docker rmi nginx:latest # 推送镜像到 Docker Hub docker tag my-image:latest username/my-image:latest docker push username/my-image:latest