1、安装docker
# 更新系统
sudo dnf update -y
# 安装核心插件
sudo dnf -y install dnf-plugins-core
# 配置国内镜像
sudo dnf config-manager --add-repo=https://repo.huaweicloud.com/docker-ce/linux/centos/docker-ce.repo
sudo sed -i 's+download.docker.com+repo.huaweicloud.com/docker-ce+' /etc/yum.repos.d/docker-ce.repo
# 说明:docker-ce.repo 中用 $releasever 变量代替当前系统的版本号,该变量在 CentOS 中有效,但在 openEuler 中无效,所以将该变量直接改为8。
sudo sed -i 's+$releasever+8+' /etc/yum.repos.d/docker-ce.repo
# 更新仓库镜像
sudo dnf makecache
# 正式安装
sudo dnf install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
# 开机启动
sudo systemctl enable docker
# 运行
sudo systemctl start docker
# 停止
sudo systemctl stop docker
# 查看容器
docker ps
# 非root用户使用docker
sudo gpasswd -a [username] docker #将当前用户添加至用户组
sudo newgrp docker #更新用户组
- 镜像加速
sudo tee /etc/docker/daemon.json <<EOF
{
"registry-mirrors": ["https://dockerhub.icu"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
- 常用命令
# 查看容器
docker images
# 查看正在运行的容器
docker ps
# 删除容器
docker rmi docker_demo:v0.1
# 停止容器
docker stop 8b95309d8e76
# 运行容器并进入命令行
docker run -it --rm docker_demo:v0.1 /bin/sh
# Dockerfile编译容器
docker build -f Dockerfile -t docker_demo:v0.1 .
2、搭建私有仓库
# 拉取官方Registry镜像:
docker pull registry:2
# 运行Registry容器并映射端口(例如,映射到本地的5000端口):
docker run -d -p 5000:5000 --name zlsc-registry registry:2
# 标记需要上传的镜像:(将docker_demo替换为你的镜像名)
docker tag docker_demo localhost:5000/zlsc-registry
# 上传镜像到私有库:
docker push localhost:5000/my-image
# 从私有库拉取镜像:
docker pull localhost:5000/my-image
注意:默认情况下,Docker客户端只能连接到HTTPS私有库。如果你想使用HTTP,需要在Docker守护进程配置文件中添加--insecure-registry localhost:5000选项。
在不同操作系统的Docker守护进程配置文件通常在以下路径:
在Linux系统上,配置文件通常在/etc/docker/daemon.json。
在Windows系统上,可以在Docker Desktop设置中修改。
在macOS系统上,可以在Docker Desktop设置中修改。
如果你需要通过HTTP上传镜像,请按照以下步骤操作:
- 1、编辑Docker守护进程配置文件,添加insecure-registries字段。例如,在Linux系统中:
{
"insecure-registries" : ["localhost:5000"]
}
2、重启Docker守护进程以应用更改。
sudo systemctl restart docker