1、检查yum源 (此步骤可省略,一般contos7都会有),centos7的yum源自带docker
cd /etc/yum.repos.d | ls
2、查看yum上的docker版本
yum list docker
3、选择并安装docker某个版本
yum install docker.x86_64
4、安装好查看安装版本
docker --version
查看docker是否安装成功
yum list installed |grep docker
5、启动docker
systemctl start docker
(可根据实际情况选择性的设置开机自启
systemctl enable docker.service
)
6、查看docker服务状态
systemctl status docker
1、拉取镜像仓库
docker pull registry
2、查看所有镜像(此步骤也可以跳过)
docker images
3、在主机上新建一个目录
我建的位置是在 usr/local/下 文件夹名:docker_registry
创建文件夹命令:mkdir docker_registry
4、启动镜像
docker run -d -p 5000:5000 --name=dockerRegistry --restart=always --privileged=true -v /usr/local/docker_registry:/var/lib/registry registry
解释:
-d 是后台启动容器。
-p 将容器的 5000 端口映射到 Host 的 5000 端口。5000 是 registry 服务端口。
--name=dockerRegistry 运行的容器名称
--restart=always 自动重启
--privileged=true centos7中的安全模块selinux把权限禁止了,加上这行是给容器增加执行权限
-v /usr/local/docker_registry:/var/lib/registry 把主机的/usr/local/docker_registry 目录挂载到registry容器的/var/lib/registry目录下
registry 镜像名称
5、从公有仓库拉去一个nginx镜像下来测试
docker pull nginx
6、查看镜像 docker images
7、修改配置文件 /etc/docker/daemon.json
第一次建可能此文件里面空的
注意:文中192.168.1.21 替换为你连的lunix的ip
正确的配置例子:
"registry-mirrors": ["https://docker.mirrors.ustc.edu.cn", "https://hub-mirror.c.163.com", "https://registry.docker-cn.com"],(# 此处逗号一定的有)
"insecure-registries":["192.168.1.21:5000"]
"registry-mirrors"可选地址:
Docker中国区官方镜像
(不推荐,国家把docker国外镜像hub封掉了,导致镜像pull不下来)
https://registry.docker-cn.com
网易
http://hub-mirror.c.163.com
中国科技大学(推荐)
https://docker.mirrors.ustc.edu.cn
阿里云容器 服务
https://cr.console.aliyun.com/
Daocloud
http://141e5461.m.daocloud.io/
8、新建tag
docker tag 镜像名:版本 主机ip/新的镜像名:版本
例:docker tag nginx 192.168.1.21:5000/nginx
9、推送到本地仓库
docker push ip:5000/nginx
10、去之前新建的仓库查看是否已经有nginx,如果有就表示成功,
cd /usr/local/docker_registry/docker/registry/v2/repositories
11、此处做一个测试,删除刚才的tag镜像,在重新pull,会成功拉取到刚才的镜像
docker rmi 192.168.1.21:5000/nginx 删除
docker rmi nginx 删除
docker images 查询,此时192.168.1.21:5000/nginx 和 nginx 都已被删除
重新拉取
docker pull 192.168.1.21:5000/nginx
docker images 查询,此时192.168.1.21:5000/nginx 又可以查到了
报错1:Job for docker.service failed because the control process exited with error code. See "systemctl status docker.service" and "journalctl -xe" for details.
解决①:
检查/etc/docker/daemon.json文件,文件改完要重启docker
(重启命令: systemctl restart docker )
解决②:
如果解决①没效果,可以试试这个
1、卸载docker,重新安装
1) 查询安装过的包 yum list installed | grep docker
2) 删除安装过的包
yum -y remove docker.x86_64
yum -y remove docker-client.x86_64
yum -y remove docker-common.x86_64
2、更新yum为最新
sudo yum update
3、安装需要的软件包, yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖的
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
4、设置yum源
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
5、查看仓库中docker版本
yum list docker-ce --showduplicates | sort -r
6、安装docker
sudo yum install docker-ce
7、启动Docker,设置开机启动,停止Docker
sudo systemctl start docker
sudo systemctl enable docker
sudo systemctl stop docker(此处不用此命令,前两个命令就可以)
8、查看版本
docker version
报错2:
docker: Error response from daemon: Conflict. The container name "/dockerRegistry" is already in use by container "fac69bfaf99ae6e677c498705231e2dd2ebda326de3cc991cba4acb67705fddd". You have to remove (or rename) that container to be able to reuse that name.See ‘docker run --help‘.
解决:错误原因是dockerRegistry已在容器中存在了
命令:
1)查看有什么在运行 docker ps -l
2)删除 docker rm 09f5b868c5a5
3)再次执行docker run -d -p 5000:5000 --name=dockerRegistry --restart=always --privileged=true -v /usr/local/docker_registry:/var/lib/registry docker.io/registry
参考:https://www.jianshu.com/p/8f38f198724e
安装gitlab镜像参考:https://www.jianshu.com/p/080a962c35b6
原文:https://www.cnblogs.com/Lk-skyhorse/p/13159302.html