在 CentOS 上“管 Docker”一般包括:安装 Docker、启动/停止、设置开机自启、镜像和容器管理、权限与防火墙、常用排错。下面按实用流程讲。
sudo 权限的用户sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
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
sudo systemctl start docker
sudo systemctl enable docker
sudo systemctl status docker
sudo systemctl stop docker
sudo systemctl restart docker
默认只有 root 能运行 docker 命令。
sudo usermod -aG docker $USER
执行后必须重新登录
验证:
docker version
docker search nginx
docker pull nginx:latest
docker images
docker rmi nginx
docker run -d -p 8080:80 --name mynginx nginx
参数说明:
-d:后台运行-p:端口映射--name:容器名docker ps
docker ps -a
docker stop mynginx
docker start mynginx
docker rm mynginx
docker logs -f mynginx
如果外部访问不了容器端口:
sudo firewall-cmd --zone=public --add-port=8080/tcp --permanent
sudo firewall-cmd --reload
或在测试环境可直接关闭防火墙(不推荐生产):
sudo systemctl stop firewalld
运行容器时加:
docker run -d --restart=always --name mynginx nginx
sudo yum remove docker-ce docker-ce-cli containerd.io
sudo rm -rf /var/lib/docker
Cannot connect to the Docker daemonsudo systemctl start docker
Got permission denied while trying to connect to Docker daemon
docker system prune -a
如果你愿意,我可以:
你主要用 Docker 来做什么?