Docker-----deepin系統下docker安裝registry

環境說明

一個坑逼的環境,也不能說坑逼,國產化的需求嘛。node

root@node22:/registry# uname -a
Linux node22 4.4.15-deepin-aere #137 SMP Tue Dec 18 17:06:43 CST 2018 sw_64 GNU/Linux
root@node22:/registry# lsb_release -a
No LSB modules are available.
Distributor ID: deepin
Description:    deepin 15.2
Release:        15.2
Codename:       kui

我直接安裝了apt-get安裝好了docker服務git

根據深度官方提供的基礎鏡像安裝好了一個基礎鏡像服務。github

https://docs.deepin.cn/d/fbcc4fb4b6/   這個是基礎容器鏡像

問題來了,在官方網站找不到sw_64架構的registry容器。golang

只能本身動手編譯一個。docker

go環境部署

#使用基本鏡像啓動容器ubuntu

docker run -it -d --name registry  -p 4000:5000  deepin 

#這時候發現一個問題,容器內不能安裝包bash

#切換一下源文件否則安裝軟件包會有問題架構

docker cp /etc/apt/sources.list registry:/etc/apt

#同步 /etc/apt/sources.list 和 /etc/apt/sources.list.d 中列出的源的索引,這樣才能獲取到最新的軟件包。測試

apt-get update

#安裝go環境網站

apt-get install golang-go git make
mkdir -p $HOME/go/{bin,pkg,src}
#配置環境變量
export GOROOT=/usr/lib/go
export GOPATH=$HOME/go
export PATH=$PATH:$GOROOT/bin:$GOPATH/bin
source /etc/profile

源碼編譯

#下載源碼
cd $HOME/go/src
git clone https://github.com/docker/distribution.git
cd distribution
#安裝依賴
go get

#配置容器鏡像文件
mkdir -p /etc/docker/registry/
cp cmd/registry/config-dev.yml /etc/docker/registry/config.yml
mkdir -p /var/lib/registry

#編譯
make PREFIX=$HOME/go clean binaries

#到此Docker Registry編譯完成,下面進行測試

啓動服務檢測

#查看版本並運行

cd bin
./registry -v
./registry serve /etc/docker/registry/config.yml 

訪問本地5000端口,看到返回「200 OK」,則說明成功了
爲了方便把啓動命令改爲腳本

root@fb469b1c0702:~# more registry.sh
#!/bin/bash
../root/registry serve /etc/docker/registry/config.yml

#能夠把這個作好的registry鏡像commit一下

docker commit registry kolla/ubuntu-source-registry

 #配置一下服務隨容器啓動

root@node22:/ljy/now# more Dockerfile
# Build a registry for deepin sw_64
FROM kolla/ubuntu-source-registry
CMD ["sh", "-c", "sh  /root/registry.sh"]

docker build -t kolla/ubuntu-source-registry .

#使用鏡像啓動容器

docker run -it -d --name registry  -p 4000:5000 -v /registry:/var/lib/registry kolla/ubuntu-source-registry
相關文章
相關標籤/搜索