智能现代通讯 發表於 2023-8-21 00:00:00

centos7系统下搭建docker本地镜像仓库的方法

<p>
        系统环境: CentOS 7.2</p>
<p>
        192.168.0.179:Docker仓库</p>
<p>
        192.168.0.60:客户端</p>
<p>
        <strong>安装并启动docker</strong></p>
<div class="jb51code">
        <div>
                <div class="syntaxhighlighterbash" id="highlighter_881415">
                        <div class="toolbar">
                                <span>?</span>
</div>
                        <table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
                                                        <div class="line number1 index0 alt2">
                                                                1</div>
                                                        <div class="line number2 index1 alt1">
                                                                2</div>
                                                        <div class="line number3 index2 alt2">
                                                                3</div>
                                                </td>
                                                <td class="code">
                                                        <div class="container">
                                                                <div class="line number1 index0 alt2">
                                                                        <code class="bash plain">yum -y </code><code class="bash functions">install</code> <code class="bash plain">docker</code>
</div>
                                                                <div class="line number2 index1 alt1">
                                                                        <code class="bash plain">systemctl start docker</code>
</div>
                                                                <div class="line number3 index2 alt2">
                                                                        <code class="bash plain">systemctl </code><code class="bash functions">enable</code> <code class="bash plain">docker</code>
</div>
                                                        </div>
                                                </td>
                                        </tr></tbody></table>
</div>
        </div>
        <div class="codetool" id="codetool">
                <div class="code_n">
                        <textarea></textarea>
</div>
        </div>
</div>
<p>
        <strong>搭建私有仓库</strong></p>
<p>
        179上下载registry镜像</p>
<div class="jb51code">
        <div>
                <div class="syntaxhighlighterbash" id="highlighter_431163">
                        <div class="toolbar">
                                <span>?</span>
</div>
                        <table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
                                                        <div class="line number1 index0 alt2">
                                                                1</div>
                                                </td>
                                                <td class="code">
                                                        <div class="container">
                                                                <div class="line number1 index0 alt2">
                                                                        <code class="bash plain">docker pull registry</code>
</div>
                                                        </div>
                                                </td>
                                        </tr></tbody></table>
</div>
        </div>
        <div class="codetool" id="codetool">
                <div class="code_n">
                        <textarea></textarea>
</div>
        </div>
</div>
<p>
        防火墙添加运行5000端口</p>
<div class="jb51code">
        <div>
                <div class="syntaxhighlighterbash" id="highlighter_622540">
                        <div class="toolbar">
                                <span>?</span>
</div>
                        <table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
                                                        <div class="line number1 index0 alt2">
                                                                1</div>
                                                </td>
                                                <td class="code">
                                                        <div class="container">
                                                                <div class="line number1 index0 alt2">
                                                                        <code class="bash plain">iptables -I INPUT 1 -p tcp --dport 5000 -j ACCEPT</code>
</div>
                                                        </div>
                                                </td>
                                        </tr></tbody></table>
</div>
        </div>
        <div class="codetool" id="codetool">
                <div class="code_n">
                        <textarea></textarea>
</div>
        </div>
</div>
<p>
        下载完之后我们通过该镜像启动一个容器</p>
<p>
         </p>
<div class="codetitle">
        <span><u>复制代码</u></span> 代码如下:</div>
<div class="codebody" id="code98096">
        <br>
        docker run -d -p 5000:5000 --privileged=true -v /opt/registry:/tmp/registry registry</div>
<p>
         </p>
<p>
        参数说明:</p>
<ul>
<li>
                -v /opt/registry:/tmp/registry :默认情况下,会将仓库存放于容器内的/tmp/registry目录下,指定本地目录挂载到容器</li>
        <li>
                –privileged=true :CentOS7中的安全模块selinux把权限禁掉了,参数给容器加特权,不加上传镜像会报权限错误(OSError: Permission denied: ‘/tmp/registry/repositories/liibrary')或者(Received unexpected HTTP status: 500 Internal Server Error)错误</li>
</ul>
<p>
        <strong>客户端上传镜像</strong></p>
<p>
        修改/etc/sysconfig/docker(Ubuntu下配置文件地址为:/etc/init/docker.conf),增加启动选项(已有参数的在后面追加),之后重启docker,不添加报错,https证书问题。</p>
<div class="jb51code">
        <div>
                <div class="syntaxhighlighterbash" id="highlighter_386588">
                        <div class="toolbar">
                                <span>?</span>
</div>
                        <table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
                                                        <div class="line number1 index0 alt2">
                                                                1</div>
                                                        <div class="line number2 index1 alt1">
                                                                2</div>
                                                </td>
                                                <td class="code">
                                                        <div class="container">
                                                                <div class="line number1 index0 alt2">
                                                                        <code class="bash plain">OPTIONS=</code><code class="bash string">'--insecure-registry 192.168.0.179:5000'</code> <code class="bash comments">#CentOS 7系统</code>
</div>
                                                                <div class="line number2 index1 alt1">
                                                                        <code class="bash plain">other_args=</code><code class="bash string">'--insecure-registry 192.168.0.179:5000'</code> <code class="bash comments">#CentOS 6系统</code>
</div>
                                                        </div>
                                                </td>
                                        </tr></tbody></table>
</div>
        </div>
        <div class="codetool" id="codetool">
                <div class="code_n">
                        <textarea></textarea>
</div>
        </div>
</div>
<p>
        因为Docker从1.3.X之后,与docker registry交互默认使用的是https,而此处搭建的私有仓库只提供http服务在docker公共仓库下载一个镜像</p>
<div class="jb51code">
        <div>
                <div class="syntaxhighlighterbash" id="highlighter_323374">
                        <div class="toolbar">
                                <span>?</span>
</div>
                        <table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
                                                        <div class="line number1 index0 alt2">
                                                                1</div>
                                                </td>
                                                <td class="code">
                                                        <div class="container">
                                                                <div class="line number1 index0 alt2">
                                                                        <code class="bash plain">docker pull docker.io</code><code class="bash plain">/centos</code>
</div>
                                                        </div>
                                                </td>
                                        </tr></tbody></table>
</div>
        </div>
        <div class="codetool" id="codetool">
                <div class="code_n">
                        <textarea></textarea>
</div>
        </div>
</div>
<p>
        来修改一下该镜像的tag</p>
<div class="jb51code">
        <div>
                <div class="syntaxhighlighterbash" id="highlighter_119158">
                        <div class="toolbar">
                                <span>?</span>
</div>
                        <table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
                                                        <div class="line number1 index0 alt2">
                                                                1</div>
                                                </td>
                                                <td class="code">
                                                        <div class="container">
                                                                <div class="line number1 index0 alt2">
                                                                        <code class="bash plain">docker tag centos 192.168.0.179:5000</code><code class="bash plain">/centos</code>
</div>
                                                        </div>
                                                </td>
                                        </tr></tbody></table>
</div>
        </div>
        <div class="codetool" id="codetool">
                <div class="code_n">
                        <textarea></textarea>
</div>
        </div>
</div>
<p>
        把打了tag的镜像上传到私有仓库</p>
<div class="jb51code">
        <div>
                <div class="syntaxhighlighterbash" id="highlighter_179517">
                        <div class="toolbar">
                                <span>?</span>
</div>
                        <table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
                                                        <div class="line number1 index0 alt2">
                                                                1</div>
                                                </td>
                                                <td class="code">
                                                        <div class="container">
                                                                <div class="line number1 index0 alt2">
                                                                        <code class="bash plain">docker push 192.168.0.179:5000</code><code class="bash plain">/centos</code>
</div>
                                                        </div>
                                                </td>
                                        </tr></tbody></table>
</div>
        </div>
        <div class="codetool" id="codetool">
                <div class="code_n">
                        <textarea></textarea>
</div>
        </div>
</div>
<p>
        <strong>客户端添加私有仓库地址</strong></p>
<div class="jb51code">
        <div>
                <div class="syntaxhighlighterbash" id="highlighter_505216">
                        <div class="toolbar">
                                <span>?</span>
</div>
                        <table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
                                                        <div class="line number1 index0 alt2">
                                                                1</div>
                                                        <div class="line number2 index1 alt1">
                                                                2</div>
                                                </td>
                                                <td class="code">
                                                        <div class="container">
                                                                <div class="line number1 index0 alt2">
                                                                        <code class="bash comments"># 添加这一行</code>
</div>
                                                                <div class="line number2 index1 alt1">
                                                                        <code class="bash plain">ADD_REGISTRY=</code><code class="bash string">'--add-registry 192.168.0.179:5000'</code>
</div>
                                                        </div>
                                                </td>
                                        </tr></tbody></table>
</div>
        </div>
        <div class="codetool" id="codetool">
                <div class="code_n">
                        <textarea></textarea>
</div>
        </div>
</div>
<p>
        加上后,search镜像,私有仓库和docker hub上都会显示;</p>
<p>
        不加搜索私有仓库,需要命令中指定私有仓库ip</p>
<p>
        <strong>使用仓库中的镜像</strong></p>
<p>
        查询私有仓库中的所有镜像,使用docker search命令:</p>
<div class="jb51code">
        <div>
                <div class="syntaxhighlighterbash" id="highlighter_314134">
                        <div class="toolbar">
                                <span>?</span>
</div>
                        <table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
                                                        <div class="line number1 index0 alt2">
                                                                1</div>
                                                        <div class="line number2 index1 alt1">
                                                                2</div>
                                                </td>
                                                <td class="code">
                                                        <div class="container">
                                                                <div class="line number1 index0 alt2">
                                                                        <code class="bash plain">curl -u myuser https:</code><code class="bash plain">//registry_ip</code><code class="bash plain">:5000</code><code class="bash plain">/v1/search</code>
</div>
                                                                <div class="line number2 index1 alt1">
                                                                        <code class="bash plain">curl registry_ip:5000</code><code class="bash plain">/v1/search</code>
</div>
                                                        </div>
                                                </td>
                                        </tr></tbody></table>
</div>
        </div>
        <div class="codetool" id="codetool">
                <div class="code_n">
                        <textarea></textarea>
</div>
        </div>
</div>
<div class="jb51code">
        <div>
                <div class="syntaxhighlighterbash" id="highlighter_710776">
                        <div class="toolbar">
                                <span>?</span>
</div>
                        <table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
                                                        <div class="line number1 index0 alt2">
                                                                1</div>
                                                        <div class="line number2 index1 alt1">
                                                                2</div>
                                                </td>
                                                <td class="code">
                                                        <div class="container">
                                                                <div class="line number1 index0 alt2">
                                                                        <code class="bash plain">docker search registry_ip:5000/  </code><code class="bash comments">#centos 7</code>
</div>
                                                                <div class="line number2 index1 alt1">
                                                                        <code class="bash plain">docker search registry_ip:5000</code><code class="bash plain">/library</code> <code class="bash comments">#centos 6</code>
</div>
                                                        </div>
                                                </td>
                                        </tr></tbody></table>
</div>
        </div>
        <div class="codetool" id="codetool">
                <div class="code_n">
                        <textarea></textarea>
</div>
        </div>
</div>
<p>
        查询仓库中指定账户下的镜像,则使用如下命令:</p>
<div class="jb51code">
        <div>
                <div class="syntaxhighlighterbash" id="highlighter_546329">
                        <div class="toolbar">
                                <span>?</span>
</div>
                        <table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
                                                        <div class="line number1 index0 alt2">
                                                                1</div>
                                                </td>
                                                <td class="code">
                                                        <div class="container">
                                                                <div class="line number1 index0 alt2">
                                                                        <code class="bash plain">docker search registry_ip:5000</code><code class="bash plain">/account/</code>
</div>
                                                        </div>
                                                </td>
                                        </tr></tbody></table>
</div>
        </div>
        <div class="codetool" id="codetool">
                <div class="code_n">
                        <textarea></textarea>
</div>
        </div>
</div>
<p>
        以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。</p>
<p>
        原文链接:http://blog.csdn.net/fgf00/article/details/52040492</p>
頁: [1]
查看完整版本: centos7系统下搭建docker本地镜像仓库的方法