實驗環境:兩個Centos7虛擬機,一個是Server,用做客戶端,另外一個是Registry,用做Docker私有鏡像倉庫。linux
查看一下兩臺虛擬機的IP地址
Server的IP地址是192.168.134.151
.
docker
Registry的IP地址是192.168.134.150
.
3d
使用setenforce 0
臨時關閉SElinux。rest
打開Server
和Registry
的內核轉發功能
編輯配置文件/etc/sysctl.conf
,添加下面的內容:code
net.ipv4.ip_forward = 1 net.ipv4.conf.default.rp_filter = 0 net.ipv4.conf.all.rp_filter = 0
修改完成後使用sysctl –p
命令生效。
server
1.Docker環境安裝
在Server
和Registry
兩臺機器上使用yum install -y docker
命令安裝docker環境。
blog
2.配置Docker配置文件
在Server
和Registry
上編輯/etc/sysconfig/docker
文件添加以下兩行:ip
ADD_REGISTRY='--add-registry 192.168.134.150:5000' INSECURE_REGISTRY='--insecure-registry 192.168.134.150:5000'
這裏是將docker image
的獲取地址改成從本地私有Registry
獲取。
使用systemctl restart docker
命令重啓一下docker。虛擬機
3.設置Docker服務
設置docker開機自啓it
systemctl enable docker
4.配置鏡像倉庫
先把等會要用到的兩個鏡像的tar包放到/root
目錄下。
接着手動加載鏡像,加載registry
鏡像並使用再將他上傳至私有鏡像倉庫,由於registry
容器要用於其餘容器的註冊,因此先將他啓動。搭建私有鏡像倉庫必需要先將registry容器啓動。
使用的命令以下:
docker load < registry_latest.tar //加載鏡像 docker images //查看剛剛加載的鏡像的ID docker run -d -p 5000:5000 --restart=always --name registry registry:latest //啓動registry容器 docker tag 鏡像ID registry:latest //給registry鏡像打上新tag(能夠省去此步) docker push registry:latest //將registry鏡像上傳至私有鏡像倉庫(能夠省去此步)
這時使用docker images
查看一下本地鏡像。
能夠看到下面一個就是我剛剛從新打tag的鏡像。
如今上傳一個owncloud鏡像。
這裏能夠看到上傳完以後的鏡像是沒有tag的,因此咱們給他打上tag,就能夠看出來了。
接着將他上傳至私有鏡像倉庫。
所有命令以下:
docker load < owncloud.tar //加載鏡像 docker images //查看剛剛加載的鏡像的ID docker tag 鏡像ID owncloud:latest //給owncloud鏡像打上tag docker push owncloud:latest //將owncloud鏡像上傳至私有鏡像倉庫
我這裏私有鏡像倉庫的默認位置在/var/lib/docker/volumes/022dbe58afaec96083a1ceb3fb6672c7a62be38a5a48158322d75d2e6b1150c3/_data/docker/registry/v2/repositories/
下。
查看一下
這裏能夠看到我上傳至私有鏡像倉庫的鏡像文件。
驗證一下私有鏡像是否搭建成功
到server上拉取owncloud鏡像試一下。
這裏能夠看到他是從192.168.134.150 Registry
鏡像倉庫拉取的鏡像。 到此實驗成功!