Centos7搭建私有yum源與docker images倉庫

Centos7搭建私有yum源與docker images倉庫

系統(tǒng)使用的是centos7-Minimal-2009
磁盤300G软免,根目錄分大點
另外掛載了一個200G的磁盤作為docker images的存儲
如果只需要搭建私有yum源,上半部分就可以了


私有yum源--yum repo

設(shè)置hostname

hostnamectl set-hostname mirrors.your-domain.com

安裝net-tool

yum install -y net-tools

我的網(wǎng)絡(luò)拓?fù)涫莕at 加 內(nèi)網(wǎng)環(huán)境

所以靜態(tài)路由需要配置情臭,不需要就跳過此段

查看路由表

ip route show

添加內(nèi)網(wǎng)靜態(tài)路由(重啟失效)

ip route add 10.0.0.0/8 via 10.101.2.1 dev ens224
ip route add 172.16.0.0/16 via 10.101.2.1 dev ens224

添加內(nèi)網(wǎng)靜態(tài)路由(永久)

cat << EOF > /etc/sysconfig/network-scripts/route-ens224
10.0.0.8/8 via 10.101.2.1 dev ens224
172.16.0.0/16 via 10.101.2.1 dev ens224
EOF

service network restart

關(guān)閉selinux、關(guān)閉firewall

sed -i '/SELINUX/s/enforcing/disabled/' /etc/selinux/config
setenforce 0
systemctl stop firewalld.service
systemctl disable firewalld.service

安裝apache,設(shè)置啟動

yum install -y httpd
systemctl start httpd.service
systemctl enable httpd.service

試一下apache頁面

http://mirrors.your-domain.com

更換默認(rèn)repo為阿里云

mkdir -p /etc/yum.repos.d/bak/
mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/bak/
curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
curl -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
yum clean all
yum makecache

可以看一下現(xiàn)在的repo

yum repolist

安裝同步工具运提、repo制作工具

yum install -y yum-utils createrepo wget

創(chuàng)建目錄

mkdir -p /var/www/html/repo/centos/7
### base倉同步并創(chuàng)建repo數(shù)據(jù)
reposync -r base -p /var/www/html/repo/centos/7
createrepo /var/www/html/repo/centos/7/base

###extras倉庫同步并創(chuàng)建repo數(shù)據(jù)
reposync -r extras -p /var/www/html/repo/centos/7
createrepo /var/www/html/repo/centos/7/extras

###updates倉庫并創(chuàng)建repo數(shù)據(jù)
reposync -r updates -p /var/www/html/repo/centos/7
createrepo /var/www/html/repo/centos/7/updates

###epel倉庫同步并創(chuàng)建repo數(shù)據(jù)

reposync -r epel -p /var/www/html/repo/centos/7
createrepo /var/www/html/repo/centos/7/epel

###docker-ce倉庫同步并創(chuàng)建repo數(shù)據(jù)

reposync -r docker-ce-stable -p /var/www/html/repo/centos/7
createrepo /var/www/html/repo/centos/7/docker-ce-stable

手動更新包和更新repodata命令(可選)

reposync -np /var/www/html/repo/centos/7/

createrepo --update /var/www/html/repo/centos/7/base
createrepo --update /var/www/html/repo/centos/7/extras
createrepo --update /var/www/html/repo/centos/7/updates
createrepo --update /var/www/html/repo/centos/7/epel
createrepo --update /var/www/html/repo/centos/7/docker-ce-stable

制作repo指向文件

cat << EOF > /var/www/html/repo/Centos-7.repo
#base倉庫
[base]
name=Local CentOS-7  Base
baseurl=http://mirrors.your-domain.com/repo/centos/7/base
enabled=1
gpgcheck=0

# extras倉庫
[extras]
name=Local CentOS-7  Extras 
baseurl=http://mirrors.your-domain.com/repo/centos/7/extras
enabled=1
gpgcheck=0

# updates倉庫
[updates]
name=Local CentOS-7  Updates
baseurl=http://mirrors.your-domain.com/repo/centos/7/updates
enabled=1
gpgcheck=0

# epel倉庫
[epel]
name=Local Extra Packages for Enterprise Linux 7
baseurl=http://mirrors.your-domain.com/repo/centos/7/epel
enabled=1
gpgcheck=0


# docker-ce倉庫
[docker-ce-stable]
name=Local docker Packages for Enterprise Linux 7
baseurl=http://mirrors.your-domain.com/repo/centos/7/docker-ce-stable
enabled=1
gpgcheck=0
EOF

設(shè)置自動同步

cat << EOF > /var/www/html/sync_yum.sh
#!/bin/bash
echo 'Updating Aliyum Source'
exec > /var/log/sync_yumrepo.log
reposync -np /var/www/html/repo/centos/7/
if [ $? -eq 0 ];then
    createrepo --update /var/www/html/repo/centos/7/base
    createrepo --update /var/www/html/repo/centos/7/extras
    createrepo --update /var/www/html/repo/centos/7/updates
    createrepo --update /var/www/html/repo/centos/7/epel
    createrepo --update /var/www/html/repo/centos/7/docker-ce-stable
    echo "SUCESS: aliyum_yum update successful"
else
   echo "ERROR: aliyum_yum update failed"
fi
EOF

chmod +x /var/www/html/sync_yum.sh

每周一凌晨1點同步
crontab -e
0 1 * * 1 /bin/bash /var/www/html/sync_yum.sh

創(chuàng)建使用說明頁面

cat << EOF > /var/www/html/index.html
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>CentOS repo與docker registry鏡像</title>

<script>document.createElement("myHero")</script>
<style>
myHero {
display: block;
background-color: #ddd;
padding: 10px;
font-size: 20px;
} 
</style> 

</head>
<body>
<h1>簡介</h1>
<hr>
<p>CentOS蝗柔,是基于 Red Hat Linux 提供的可自由使用源代碼的企業(yè)級 Linux 發(fā)行版本,是一個穩(wěn)定民泵,可預(yù)測癣丧,可管理和可復(fù)制的免費企業(yè)級計算平臺。</p>
<p>站點功能:</p>
<p>1.Centos yum repo</p>
<p>2.Docker images registry</p>

<hr>
<br>
<br>

<h1>一栈妆、CentOS 7 配置內(nèi)部YUM源</h1>
<br>
<h2>1胁编、備份</h2>
<myHero>mkdir -p /etc/yum.repos.d/bak/</myHero>
<myHero>mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/bak/</myHero>
<br>
<h2>2、下載新的 CentOS-Base.repo 到 /etc/yum.repos.d/ </h2>
<myHero>curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.your-domain.com/repo/Centos-7.repo</myHero>
<br>
<h2>3鳞尔、生成緩存</h2>
<myHero>yum makecache</myHero>
<br>
<h2>4嬉橙、運行 yum repolist   可查看已經(jīng)生成緩存</h2>
<br>
<br>
<hr>
<h1>二、使用docker images registry倉庫</h1>

<br>
<h2>1寥假、下載ssl證書</h2>
<myHero>mkdir -p /etc/docker/certs.d/mirrors.your-domain.com</myHero>
<myHero>wget -O /etc/docker/certs.d/mirrors.your-domain.com/ca.crt http://mirrors.your-domain.com/ca.crt</myHero>

<br>
<h2>2市框、測試返回 </h2>
<myHero>curl -Ik https://mirrors.your-domain.com</myHero>
    HTTP/1.1 200 OK</myHero>
<br>
    Cache-Control: no-cache</myHero>

<br>
<h2>3、鏡像拉取測試(可選)</h2>
<myHero>docker pull mirrors.your-domain.com/library/ubuntu </myHero>
<br>
<h2>4糕韧、使用(以ceph為例)</h2>
<br>
<myHero>docker pull mirrors.your-domain.com/ceph/daemon:latest-mimic </myHero>
<br>
<br>
</body>
</html>
EOF

訪問

http://mirrors.your-domain.com


其他機(jī)器使用私有源

mkdir -p /etc/yum.repos.d/bak/

mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/bak/

curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.your-domain.com/repo/Centos-7.repo

yum makecache

yum update

私有源部分結(jié)束


docker images registry --images本地倉

添加一個專用磁盤sdb枫振,200G,作為docker images存儲

pvcreate /dev/sdb
vgcreate registry_vg /dev/sdb
lvcreate -L 198G -n registry_data registry_vg
mkfs.xfs /dev/mapper/registry_vg-registry_data 
mkdir -p /var/lib/docker/volumes/registry/_data/docker

查一下registry_vg-registry_data的UUID

blkid

[root@mirrors ~]# blkid
/dev/mapper/centos-root: UUID="ff7c3399-c44d-49dc-9e98-570b00bcd84a" TYPE="xfs" 
/dev/sda2: UUID="IuHCZp-JMfJ-f8bi-16x2-2NAx-yd4k-bcusvV" TYPE="LVM2_member" 
/dev/sda1: UUID="4a5490c9-3203-4f96-8191-ad49d3183347" TYPE="xfs" 
/dev/sdb: UUID="i3wvm3-op4P-v2qk-QLc1-Keww-69mG-zgA9SV" TYPE="LVM2_member" 
/dev/mapper/centos-swap: UUID="dd5cdb94-fbeb-4f79-90bf-807fd4b0d581" TYPE="swap" 
/dev/mapper/registry_vg-registry_data: UUID="21d493a8-7329-45e5-82f9-02e97066cdb0" TYPE="xfs" 
/dev/mapper/centos-home: UUID="824c3751-2548-4cd2-9fdd-e0081a444a4e" TYPE="xfs" 

在fstab的最后加一行萤彩,UUID替換成registry_vg-registry_data的
vi /etc/fstab

UUID=21d493a8-7329-45e5-82f9-02e97066cdb0 /var/lib/docker/volumes/registry/_data/docker        xfs     defaults        0 0

mount -a

加一個阿里的docker-ce源

yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum makecache

安裝docker粪滤,并啟動

yum install docker-ce -y
systemctl start docker
systemctl enable docker

設(shè)置docker kolla.conf,我是用來部署openstack的

mkdir /etc/systemd/system/docker.service.d
tee /etc/systemd/system/docker.service.d/kolla.conf << 'EOF'
[Service]
MountFlags=shared
EOF

創(chuàng)建證書

yum install -y openssl
mkdir -p ~/certs && openssl req -newkey rsa:4096 -nodes -sha256 -keyout ~/certs/domain.key -x509 -days 365 -out ~/certs/domain.crt

一路回車,到Common Name這一步填:mirrors.your-domain.com

Generating a 4096 bit RSA private key
.......................................................................................++
......++
writing new private key to '/root/certs/domain.key'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [XX]:
State or Province Name (full name) []:
Locality Name (eg, city) [Default City]:
Organization Name (eg, company) [Default Company Ltd]:
Organizational Unit Name (eg, section) []:
Common Name (eg, your name or your server's hostname) []:mirrors.your-domain.com

下載registry并獲取配置

docker run -it --rm --entrypoint cat registry:2 /etc/docker/registry/config.yml > ~/config.yml

更改 config.yml 配置文件

version: 0.1
log:
  fields:
    service: registry
storage:
  cache:
    blobdescriptor: inmemory
  filesystem:
    rootdirectory: /var/lib/registry
http:
  addr: :5000
  headers:
    X-Content-Type-Options: [nosniff]
  tls:
    certificate: /var/lib/registry/domain.crt
    key: /var/lib/registry/domain.key

health:
  storagedriver:
    enabled: true
    interval: 10s
    threshold: 3

proxy:
  remoteurl: https://p7a8ba4a.mirror.aliyuncs.com

其中乒疏,https://p7a8ba4a.mirror.aliyuncs.com 是我個人的阿里云docker加速地址

放置配置文件與證書

mkdir -p /var/lib/docker/volumes/registry/_data/
cp ~/certs/domain.* ~/config.yml /var/lib/docker/volumes/registry/_data/
mkdir -p /etc/docker/certs.d/dev.registry.io
cp ~/certs/domain.crt /etc/docker/certs.d/mirrors.your-domain.com/ca.crt
cp /etc/docker/certs.d/mirrors.your-domain.com/ca.crt /var/www/html/ca.crt

運行 registry container

systemctl restart docker

docker run -d --restart=always -p 443:5000 --name registry -v registry:/var/lib/registry registry:2 /var/lib/registry/config.yml

docker ps

CONTAINER ID   IMAGECOMMAND  CREATED   STATUS  PORTS NAMES
b12c05b4a54a   registry:2   "/entrypoint.sh /var…"   9 hours ago   Up 16 seconds   0.0.0.0:443->5000/tcp, :::443->5000/tcp   registry

訪問驗證

curl -Ik https://mirrors.your-domain.com

HTTP/2 200
cache-control: no-cache

其他機(jī)器使用

先獲取證書
mkdir -p /etc/docker/certs.d/mirrors.your-domain.com
wget -O /etc/docker/certs.d/mirrors.your-domain.com/ca.crt http://mirrors.your-domain.com/ca.crt

拉取方式(以ceph為例)

docker pull mirrors.your-domain.com/ceph/daemon:latest-mimic

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末额衙,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子怕吴,更是在濱河造成了極大的恐慌窍侧,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,039評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件转绷,死亡現(xiàn)場離奇詭異伟件,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)议经,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,426評論 3 395
  • 文/潘曉璐 我一進(jìn)店門斧账,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人煞肾,你說我怎么就攤上這事咧织。” “怎么了籍救?”我有些...
    開封第一講書人閱讀 165,417評論 0 356
  • 文/不壞的土叔 我叫張陵习绢,是天一觀的道長。 經(jīng)常有香客問我,道長闪萄,這世上最難降的妖魔是什么梧却? 我笑而不...
    開封第一講書人閱讀 58,868評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮败去,結(jié)果婚禮上放航,老公的妹妹穿的比我還像新娘。我一直安慰自己圆裕,他們只是感情好广鳍,可當(dāng)我...
    茶點故事閱讀 67,892評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著葫辐,像睡著了一般搜锰。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上耿战,一...
    開封第一講書人閱讀 51,692評論 1 305
  • 那天蛋叼,我揣著相機(jī)與錄音,去河邊找鬼剂陡。 笑死狈涮,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的鸭栖。 我是一名探鬼主播歌馍,決...
    沈念sama閱讀 40,416評論 3 419
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼晕鹊!你這毒婦竟也來了松却?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,326評論 0 276
  • 序言:老撾萬榮一對情侶失蹤溅话,失蹤者是張志新(化名)和其女友劉穎晓锻,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體飞几,經(jīng)...
    沈念sama閱讀 45,782評論 1 316
  • 正文 獨居荒郊野嶺守林人離奇死亡砚哆,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,957評論 3 337
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了屑墨。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片躁锁。...
    茶點故事閱讀 40,102評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖卵史,靈堂內(nèi)的尸體忽然破棺而出战转,到底是詐尸還是另有隱情,我是刑警寧澤以躯,帶...
    沈念sama閱讀 35,790評論 5 346
  • 正文 年R本政府宣布匣吊,位于F島的核電站,受9級特大地震影響寸潦,放射性物質(zhì)發(fā)生泄漏色鸳。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,442評論 3 331
  • 文/蒙蒙 一见转、第九天 我趴在偏房一處隱蔽的房頂上張望命雀。 院中可真熱鬧,春花似錦斩箫、人聲如沸吏砂。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,996評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽狐血。三九已至,卻和暖如春易核,著一層夾襖步出監(jiān)牢的瞬間匈织,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,113評論 1 272
  • 我被黑心中介騙來泰國打工牡直, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留缀匕,地道東北人。 一個月前我還...
    沈念sama閱讀 48,332評論 3 373
  • 正文 我出身青樓碰逸,卻偏偏與公主長得像乡小,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子饵史,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,044評論 2 355

推薦閱讀更多精彩內(nèi)容