天天看點

docker 、rancher搭建

一、安裝前準備:

配置本地yum源

1).mount -t iso9660 -o loop /dev/cdrom /media/centos

    2).vi /etc/yum.repo.d/Centos_localsource.repo

<code>[CentOS7-Localsource]</code>

<code>name=CentOS7</code>

<code>baseurl=</code><code>file</code><code>:</code><code>///media/centos</code>

<code>enabled=1</code>

<code>gpgcheck=0</code>

2.配置網絡yum源

<code>下載下傳163網易的yum源:</code>

<code>wget http:</code><code>//mirrors</code><code>.163.com/.help</code><code>/CentOS7-Base-163</code><code>.repo</code>

<code>中科大的yum源:</code>

<code>wget http:</code><code>//centos</code><code>.ustc.edu.cn</code><code>/CentOS-Base</code><code>.repo</code>

<code>sohu的yum源</code>

<code>wget http:</code><code>//mirrors</code><code>.sohu.com</code><code>/help/CentOS-Base-sohu</code><code>.repo</code>

3.yum clean all

 yum makecache

yum isntall vim net-tools #(支援ifconfig)

(setenforce 0   &amp;&amp; systemctl stop firewalld)

二、安裝docker和rancher

下載下傳docker的rpm包(https://download.docker.com/linux/centos/7/x86_64/stable/Packages/)

docker-ce-17.06.0.ce-1.el7.centos.x86_64.rpm

安裝docker

yum install docker-ce-17.06.0.ce-1.el7.centos.x86_64.rpm

配置docker加速器

vi /etc/docker/daemon.json

<code>{</code><code>"registry-mirrors"</code><code>: [</code><code>"http://d7e77b19.m.daocloud.io"</code><code>]}</code>

<code>或 </code>

<code>{</code><code>"registry-mirrors"</code><code>: [</code><code>"https://registry.docker-cn.com"</code><code>]}</code>

4.systemctl start docker

5.docker pull rancher/server

6.啟動rancher server

<code>docker run -d -v /data1/mysql:/</code><code>var</code><code>/lib/mysql --name=rancher-server --restart=unless-stopped -p </code><code>7070</code><code>:</code><code>8080</code> <code>rancher/server</code>

三、安裝registry

docker pull registry

運作registry容器

<code>docker run -d --restart=always -p </code><code>5000</code><code>:</code><code>5000</code> <code>--name repo -v /</code><code>var</code><code>/lib/registry:/</code><code>var</code><code>/lib/registry  registry</code>

3.修改/etc/docker/daemon.json添加"insecure-registries":["registry:5000"](參考:http://www.cnblogs.com/lin1/p/6207348.html)

<code>{</code><code>"registry-mirrors"</code><code>: [</code><code>"https://registry.docker-cn.com"</code><code>],</code><code>"insecure-registries"</code><code>:[</code><code>"192.168.206.134:5000"</code><code>] }</code>

4.重新開機docker

systemctl restart docker

5.将公有倉庫下載下傳docker包上傳到私有倉庫(http://www.cnblogs.com/fengzheng/p/5168951.html)

<code>#下載下傳mysql鏡像</code>

<code>docker pull mysql       </code>

<code>#重新标記一個本地鏡像為私有倉庫的版本,這裡将本地的mysql latest标記為</code><code>192.168</code><code>.</code><code>206.134</code><code>:</code><code>5000</code><code>/mysql:yang</code>

<code>docker tag mysql:latest </code><code>192.168</code><code>.</code><code>206.134</code><code>:</code><code>5000</code><code>/mysql:yang</code>

<code>#将本地鏡像推送到本地倉庫中</code>

<code>docker push </code><code>192.168</code><code>.</code><code>206.134</code><code>:</code><code>5000</code><code>/mysql:yang</code>

<code>#檢視本地倉庫中的鏡像清單</code>

<code>[root@jeff yum.repos.d]# curl http:</code><code>//localhost:5000/v2/mysql/tags/list</code>

<code>{</code><code>"name"</code><code>:</code><code>"mysql"</code><code>,</code><code>"tags"</code><code>:[</code><code>"yang"</code><code>]}</code>

<code>#拉取本地倉庫中的鏡像</code>

<code>docker pull localhost:</code><code>5000</code><code>/mysql:yang</code>

6.私有倉庫 Registry中的鏡像管理

<code>#檢查registry上的鏡像</code>

<code>for</code> <code>i </code><code>in</code> <code>`curl -s </code><code>127.0</code><code>.</code><code>0.1</code><code>:</code><code>5000</code><code>/v2/_catalog | sed</code><code>'s/repositories// ; s/[\[\"\:\{\}]*//g ; s/,/ /g ; s/]//g'</code><code>` ; </code><code>do</code> <code>curl -s </code><code>127.0</code><code>.</code><code>0.1</code><code>:</code><code>5000</code><code>/v2/$i/tags/list|sed</code><code>'s/[\{\}\"]//g; s/name://g; s/,tags:/\t/g'</code> <code>; done</code>

<code>#删除私有 registry 中的鏡像(參考:http:</code><code>//www.cnblogs.com/wjoyxt/p/5855405.html)</code>

<code>1</code><code>.修改配置/etc/docker/registry/config.yml</code>

<code>2</code><code>.使用 API GET /v2/&lt;鏡像名&gt;/manifests/&lt;tag&gt; 來取得要删除的鏡像:Tag所對應的 digest</code>

<code>比如,要删除 mysql:yang 鏡像,那麼取得 digest 的指令是:</code>

<code>curl --header </code><code>"Accept: application/vnd.docker.distribution.manifest.v2+json"</code> <code>-I -X HEAD http:</code><code>//192.168.206.134:5000/v2/mysql/manifests/yang</code>

<code> </code><code>3</code><code>.然後調用 API DELETE /v2/&lt;鏡像名&gt;/manifests/&lt;digest&gt; 來删除鏡像。比如:</code>

<code> </code><code>[root@jeff yum.repos.d]# curl -X DELETE </code><code>"http://192.168.206.134:5000/v2/mysql/manifests/sha256:afd334d5f3b4c31155a09110ad7f4728e8b5c8bdf8bca711aed61cf8247dfdec"</code>

<code> </code><code>{</code><code>"errors"</code><code>:[{</code><code>"code"</code><code>:</code><code>"UNSUPPORTED"</code><code>,</code><code>"message"</code><code>:</code><code>"The operation is unsupported."</code><code>}]}</code>

<code>----配置檔案已改,但是沒删除成功。問題待解----</code>

本文轉自 326647452 51CTO部落格,原文連結:http://blog.51cto.com/svsky/1959406,如需轉載請自行聯系原作者