天天看點

Nexus3搭建Docker私有倉庫并push鏡像

在前面的文章中,我們已經安裝好了docker,也已啟動了Nexus3,接下來我們就在Nexus3中搭建一個docker的私服。

首先,打開Nexus3首頁登入(預設使用者名為admin、預設密碼為admin123)。

接下來,我們建立docker的私有倉庫,按照下圖中的方式依次點選後即可打開建立界面。

Nexus3搭建Docker私有倉庫并push鏡像

在建立的頁面中,選擇你需要建立的倉庫類型,有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完畢。

繼續閱讀