docker 部署 nexus 配置 docker registry

环境:两台 centos7 vm,docker 17.03,nexus vm ip 192.168.1.9

1、docker 部署 nexus3
运行 docker 时需要额外开放一个端口, 9091 为 nexus 访问端口,9092 为 docker 代理仓库端口

chmod 777 /nexus-data
docker run -id --name=nexus3 -v /nexus-data:/nexus-data --restart=always -p 9091:8081 -p 9092:9092 sonatype/nexus3

或者

docker run -id --privileged=true --name=nexus3 -v /nexus-data:/nexus-data --restart=always -p 9091:8081 -p 9092:9092 sonatype/nexus3:3.15.2

如果使用挂载目录,需要修改目录权限,或者使用 --privileged=true, 否则会报错,因为 sonatype/nexus3 使用的是 nexus 用户执行程序

Error creating bundle cache.
Unable to update instance pid: Unable to create directory /nexus-data/instances
mkdir: cannot create directory '../sonatype-work/nexus3/log': Permission denied
mkdir: cannot create directory '../sonatype-work/nexus3/tmp': Permission denied

2、防火墙开启端口

[root@bdchk ~]# firewall-cmd --permanent --add-port 9091/tcp
success
[root@bdchk ~]# firewall-cmd --permanent --add-port 9091/udp
success
[root@bdchk ~]# firewall-cmd --permanent --add-port 9092/tcp
success
[root@gbdchk ~]# firewall-cmd --permanent --add-port 9092/udp
success
[root@bdchk ~]# firewall-cmd --reload
success

登录 192.168.1.9:9091, 最新版的 nexus 按提示,进入容器获取密码,然后修改密码。

[root@hk ~]# docker exec nexus3 cat /nexus-data/admin.password 
5dfd9dbe-b688-46e3-9df7-ef386ac9f441

sonatype/nexus3:3.15.2 版本默认 admin 密码 admin123

3、配置 docker 仓库代理
配置阿里云 docker proxy
docker 部署 nexus 配置 docker registry_第1张图片

配置 docker group,http 9092

docker 部署 nexus 配置 docker registry_第2张图片
激活 Docker bearer token realm
security -->realms --> Docker bearer token realm
docker 部署 nexus 配置 docker registry_第3张图片

4、docker 配置 nexus 仓库
修改 /etc/docker/daemon.json,重启 docker

[root@devops01 ~]# cat /etc/docker/daemon.json 
{
  "registry-mirrors": ["http://192.168.1.9:9092"],
  "insecure-registries": ["192.168.1.9:9092"]
}
[root@devops01 ~]# systemctl restart docker
[root@devops01 ~]# docker pull google_containers/pause:3.1
3.1: Pulling from google_containers/pause
cf9202429979: Pull complete 
Digest: sha256:759c3f0f6493093a9043cc813092290af69029699ade0e3dbe024e968fcb7cca
Status: Downloaded newer image for google_containers/pause:3.1

查看已经缓存的镜像
docker 部署 nexus 配置 docker registry_第4张图片
如果能访问 google,代理了 https://gcr.io,就可以拉取 google 镜像了

docker pull google-containers/kubernetes-dashboard-amd64:v1.8.3

5、注意:如果已经有 docker login 了,注意先 docker logout
docker info 查看登录信息

[root@devops01 ~]# docker info
...
Docker Root Dir: /var/lib/docker
Debug Mode (client): false
Debug Mode (server): false
Username: 183***
Registry: https://index.docker.io/v1/
Labels:
Experimental: false
Insecure Registries:
 192.168.1.9:9092
 127.0.0.0/8
Registry Mirrors:
 http://192.168.1.9:9092/
Live Restore Enabled: false
Product License: Community Engine

docker logout 退出登录,Username: 183*** 就会消失

[root@devops01 ~]# docker logout
Removing login credentials for https://index.docker.io/v1/
[root@devops01 ~]# docker info
...
Docker Root Dir: /var/lib/docker
Debug Mode (client): false
Debug Mode (server): false
Registry: https://index.docker.io/v1/
Labels:
Experimental: false
Insecure Registries:
 192.168.1.9:9092
 127.0.0.0/8
Registry Mirrors:
 http://192.168.1.9:9092/
Live Restore Enabled: false
Product License: Community Engine

6、如果 nexus 服务器在内网,可以借助代理服务器来拉取镜像
system–> http
配置 http 和 https 代理
docker 部署 nexus 配置 docker registry_第5张图片

参考文章:
使用 Nexus 创建 Docker 仓库

你可能感兴趣的:(docker,运维)