在前面的文章中,我們已經安裝好了docker,也已啟動了Nexus3,接下來我們就在Nexus3中搭建一個docker的私服。
首先,打開Nexus3首頁登入(預設使用者名為admin、預設密碼為admin123)。
接下來,我們建立docker的私有倉庫,按照下圖中的方式依次點選後即可打開建立界面。
在建立的頁面中,選擇你需要建立的倉庫類型,有proxy、hosted和group三種,我在這隻示範hosted,其他的都大同小異。
在建立hosted類倉庫的時候,主要設定倉庫名稱和端口号,倉庫名稱可以自己起一個,端口号可根據需要選擇http或者是https,因為我這都在内網,是以就選用了http。
一切操作完畢後,我們儲存即可。
在nexus中建立完私服後,我們需要在docker中配置下,因為我們啟用的是http端口,是以首先需要修改下docker的配置檔案,執行以下指令:
vi /etc/systemd/system/multi-user.target.wants/docker.service
在打開的檔案中增加下面紅色的文字(就是剛才的在建立倉庫時的主機IP和http的端口):
[Unit]
Description=Docker Application Container Engine
Documentation=http://docs.docker.com
After=network.target
Wants=docker-storage-setup.service
Requires=docker-cleanup.timer
[Service]
Type=notify
NotifyAccess=all
EnvironmentFile=-/run/containers/registries.conf
EnvironmentFile=-/etc/sysconfig/docker
EnvironmentFile=-/etc/sysconfig/docker-storage
EnvironmentFile=-/etc/sysconfig/docker-network
Environment=GOTRACEBACK=crash
Environment=DOCKER_HTTP_HOST_COMPAT=1
Environment=PATH=/usr/libexec/docker:/usr/bin:/usr/sbin
ExecStart=/usr/bin/dockerd-current \
--add-runtime docker-runc=/usr/libexec/docker/docker-runc-current \
--default-runtime=docker-runc \
--exec-opt native.cgroupdriver=systemd \
--userland-proxy-path=/usr/libexec/docker/docker-proxy-current \
--insecure-registry=8.8.8.8:8888 \
$OPTIONS \
$DOCKER_STORAGE_OPTIONS \
$DOCKER_NETWORK_OPTIONS \
$ADD_REGISTRY \
$BLOCK_REGISTRY \
$INSECURE_REGISTRY\
$REGISTRIES
ExecReload=/bin/kill -s HUP $MAINPID
LimitNOFILE=1048576
LimitNPROC=1048576
LimitCORE=infinity
TimeoutStartSec=0
Restart=on-abnormal
MountFlags=slave
KillMode=process
[Install]
WantedBy=multi-user.target
修改完畢儲存後,還需要執行以下指令:
systemctl daemon-reload
service docker restart
到目前為止Docker已經配置重新開機完畢,接下來我們将本地的一些鏡像上傳到nexus倉庫中。
1、登入私服,執行完下面的指令後輸入使用者名密碼(Nexus的預設使用者名為admin、預設密碼為admin123):
docker login 8.8.8.8:8888
2、給你要上傳的鏡像打個tag,指令如下:
docker tag <imageId or imageName> <nexus-hostname>:<repository-port>/<image>:<tag>
例如:
docker tag your-images 8.8.8.8:8888/your-images:latest
3、上傳鏡像到nexus倉庫,執行一下指令:
docker push 8.8.8.8:8888/your-images:latest
到此為止,鏡像已push完畢。