<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>服务器安全维护工作室 &#187; Docker 镜像服务</title>
	<atom:link href="https://www.fuwuqiok.com/tag/docker-%e9%95%9c%e5%83%8f%e6%9c%8d%e5%8a%a1/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.fuwuqiok.com</link>
	<description></description>
	<lastBuildDate>Sun, 01 Mar 2020 07:28:40 +0000</lastBuildDate>
	<language>zh-CN</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>https://wordpress.org/?v=4.2.26</generator>
	<item>
		<title>阿里云Docker 镜像服务</title>
		<link>https://www.fuwuqiok.com/%e9%98%bf%e9%87%8c%e4%ba%91docker-%e9%95%9c%e5%83%8f%e6%9c%8d%e5%8a%a1/</link>
		<comments>https://www.fuwuqiok.com/%e9%98%bf%e9%87%8c%e4%ba%91docker-%e9%95%9c%e5%83%8f%e6%9c%8d%e5%8a%a1/#comments</comments>
		<pubDate>Tue, 01 Dec 2015 13:52:58 +0000</pubDate>
		<dc:creator><![CDATA[admin]]></dc:creator>
				<category><![CDATA[aliyun服务器代维]]></category>
		<category><![CDATA[aws代维]]></category>
		<category><![CDATA[aws服务器代维]]></category>
		<category><![CDATA[Docker 镜像服务]]></category>

		<guid isPermaLink="false">https://www.fuwuqiok.com/?p=2759</guid>
		<description><![CDATA[<p>专为阿里云GPU物理机定制的深度学习和HPC工具集，在阿里云Docker Hub上发布。 1 阿里云官方Doc [&#8230;]</p>
<p><a rel="nofollow" href="https://www.fuwuqiok.com/%e9%98%bf%e9%87%8c%e4%ba%91docker-%e9%95%9c%e5%83%8f%e6%9c%8d%e5%8a%a1/">阿里云Docker 镜像服务</a>，首发于<a rel="nofollow" href="https://www.fuwuqiok.com">服务器安全维护工作室</a>。</p>
]]></description>
				<content:encoded><![CDATA[<p>专为阿里云GPU物理机定制的深度学习和HPC工具集，在阿里云Docker Hub上发布。</p>
<h3 id="1-docker-hub-">1 阿里云官方Docker Hub地址</h3>
<p><a href="http://dev.aliyun.com/search.html?spm=5176.100208.8.1.a8hURy" data-spm-anchor-id="5176.100208.8.1">http://dev.aliyun.com/search.html</a></p>
<h3 id="2-">2 新用户</h3>
<p>第一次使用阿里云Docker服务，用户需要先注册成为开发者，步骤如下：</p>
<p>打开上面的阿里云Docker Hub，未登陆的，先使用云账号登录，登录/注册在左上角； 点击右上角“管理中心”，如下图：</p>
<p><a href="https://www.fuwuqiok.com/wp-content/uploads/2015/12/dockerhub_login.jpg"><img class="attachment-medium" src="https://www.fuwuqiok.com/wp-content/uploads/2015/12/dockerhub_login.jpg" alt="dockerhub_login" width="1249" height="123" /></a></p>
<p>对新用户会弹出去注册开发者的页面：</p>
<p><a href="https://www.fuwuqiok.com/wp-content/uploads/2015/12/dockerhub_sign.jpg"><img class="attachment-medium" src="https://www.fuwuqiok.com/wp-content/uploads/2015/12/dockerhub_sign.jpg" alt="dockerhub_sign" width="1227" height="263" /></a></p>
<p>注册成功之后，点击“进入管理控制台”，下次进入也可以在Docker Hub页面，点击右上角“管理中心”进入。界面如下：</p>
<p><a href="https://www.fuwuqiok.com/wp-content/uploads/2015/12/dockerhub_panel.jpg"><img class="attachment-medium" src="https://www.fuwuqiok.com/wp-content/uploads/2015/12/dockerhub_panel.jpg" alt="dockerhub_panel" width="353" height="404" /></a></p>
<p>选择左侧的“Docker服务”下面的“镜像管理”标签，新用户会提示设置自己的镜像仓库“命名空间”和密码。命名空间是私人镜像的地址前缀。完成设置之后，可以开始使用阿里云Docker仓库。</p>
<h3 id="3-docker">3 使用 Docker</h3>
<h4 id="3-1-docker-">3.1 docker 仓库地址</h4>
<p>阿里云官方docker仓库地址为：</p>
<pre><code>registry.aliyuncs.com（公网)
</code></pre>
<p>在GPU物理机上，对应替换为内网地址：</p>
<pre><code>registry-internal.aliyuncs.com（内网）
</code></pre>
<h4 id="3-2-hello-world">3.2 运行 Hello World</h4>
<p>（GPU物理机预装CentOS 7系统，以下操作仅以CentOS 7为例，且使用root用户） 首先检查机器上安装的docker服务状态：</p>
<p><code># docker info</code></p>
<p>正常会显示当前存储空间等信息。如果出错，请先尝试重启docker服务：</p>
<p><code># systemctl restart docker</code></p>
<p>下一步，使用阿里云账号和之前设定的docker仓库密码，登录阿里云docker仓库：</p>
<p><code># docker login registry-internal.aliyuncs.com</code></p>
<p>运行 Hello World：</p>
<p><code># docker run registry-internal.aliyuncs.com/alicloudhpc/hello-world</code></p>
<p>如果一切正常，说明机器的docker服务运行正常。</p>
<h4 id="3-3-hpc-">3.3 使用深度学习和HPC工具集</h4>
<p>工具集的发布地址是：</p>
<p><a href="http://dev.aliyun.com/detail.html?spm=5176.100208.8.2.a8hURy&amp;repoId=2" data-spm-anchor-id="5176.100208.8.2">http://dev.aliyun.com/detail.html?repoId=2</a></p>
<p>列出了包含的软件工具和简介。</p>
<p>登录之后，可以下载toolkit的镜像到本地：</p>
<p><code># docker pull registry-internal.aliyuncs.com/alicloudhpc/toolkit</code></p>
<p>重命名一个短名称：</p>
<p><code># docker tag registry-internal.aliyuncs.com/alicloudhpc/toolkit toolkit</code></p>
<p>因为需要在docker容器中使用gpu设备，启动docker容器需要设定额外参数。推荐将如下内容保存到一个shell脚本（比如run-toolkit.sh），方便以后运行：</p>
<pre><code class="lang-sh">#!/bin/bash
DOCKER_BIN="/usr/bin/docker"
INTERACT="-ti"
#INTERACT="-d"
DATA_VOLUME="/disk1"
DATA_MOUNT_POINT="/disk1"
MEM_LIMIT=96g

set -e
if [ $# -lt 2 ]; then
    echo "Usage: $0 image command"
    exit -1
else
    IMAGE=$1
    shift 1
    CMD=$@
fi

devices=$(ls -1 /dev | grep nvidia)
dev_param=""
for d in $devices; do
    dev_param="$dev_param --device=/dev/$d"
done

time_param='-v /etc/localtime:/etc/localtime:ro'

if [ ! -z "$CUDA_VISIBLE_DEVICES" ]; then
    dev_env="-e CUDA_VISIBLE_DEVICES=$CUDA_VISIBLE_DEVICES"
else
    dev_env=""
fi

exec $DOCKER_BIN run \
        "$INTERACT" \
        -P \
        $dev_env \
        $dev_param \
        $time_param \
        -m $MEM_LIMIT \
        -v $DATA_VOLUME:$DATA_MOUNT_POINT \
        "$IMAGE" \
        $CMD
</code></pre>
<p>运行脚本，启动toolkit：</p>
<pre><code class="lang-sh"># chmod +x run-toolkit.sh
# ./run-toolkit.sh  toolkit  /bin/bash
</code></pre>
<p>成功运行之后，已经进入交互式的docker容器（理解为一个与host隔离的运行环境）中，物理机上的 /disk1 磁盘映射到容器内的 /disk1 文件夹，建议数据只存储到 /disk1 下（如果容器销毁，其他数据不会保留）。</p>
<p>检查GPU工作正常：</p>
<p><code># /usr/local/cuda/samples/1_Utilities/deviceQuery/deviceQuery</code></p>
<p>检查通过以后，您可以像普通终端一样，运行软件。</p>
<h4 id="3-4-">3.4 重新进入</h4>
<p>在交互式docker容器中，如果您运行 exit，退出docker容器之后，该容器即停止。如果您在容器中修改了 /disk1 以外的内容（比如安装软件），下次还需要继续使用，则不应该运行 run-toolkit.sh 新建容器，而是重启原先的，操作如下：</p>
<p>查询已经停止的容器id：</p>
<p><code># docker ps -a</code></p>
<p>返回结果中，复制下需要重启的容器的 container_id</p>
<p>重启容器：</p>
<p><code># docker start container_id</code></p>
<p>成功则返回一串重复的id</p>
<p>重新进入交互式docker容器：</p>
<p><code># docker attatch container_id</code></p>
<h3 id="4-">4. 使用进阶</h3>
<h4 id="4-1-">4.1 获得更新</h4>
<p>如果toolkit发布新的版本，可以重新pull获得更新：</p>
<p><code># docker pull registry-internal.aliyuncs.com/alicloudhpc/toolkit</code></p>
<p>重命名一个短名称：</p>
<p><code># docker tag registry-internal.aliyuncs.com/alicloudhpc/toolkit toolkit</code></p>
<h4 id="4-2-">4.2 创建私有镜像</h4>
<p>访问阿里云docker控制台：</p>
<p><a href="http://console.d.aliyun.com/index2.html/?spm=5176.100208.8.3.a8hURy#/docker/image/list" data-spm-anchor-id="5176.100208.8.3">http://console.d.aliyun.com/index2.html/?#/docker/image/list</a></p>
<p>可以创建自己的私有镜像（选择本地仓库）。</p>
<p>使用和创建本地镜像的方法，可以参考docker官方文档相关部分：</p>
<p><a href="http://docs.docker.com/userguide/dockerimages?spm=5176.100208.8.4.a8hURy" data-spm-anchor-id="5176.100208.8.4">http://docs.docker.com/userguide/dockerimages</a></p>
<p>另外有一份中文教程：<a href="http://www.docker.org.cn/book/docker.html?spm=5176.100208.8.5.a8hURy" data-spm-anchor-id="5176.100208.8.5">http://www.docker.org.cn/book/docker.html</a> （有些过时） 注意内网环境下，添加或者替换docker仓库的域名。</p>
<p>本地镜像创建完成后，通过docker push上传到阿里云docker仓库：</p>
<pre><code class="lang-sh"># docker tag some-image registry-internal.aliyuncs.com/YOUR_NAMESPCE/YOUR_REPO
# docker push registry-internal.aliyuncs.com/YOUR_NAMESPCE/YOUR_REPO
</code></pre>
<p><a rel="nofollow" href="https://www.fuwuqiok.com/%e9%98%bf%e9%87%8c%e4%ba%91docker-%e9%95%9c%e5%83%8f%e6%9c%8d%e5%8a%a1/">阿里云Docker 镜像服务</a>，首发于<a rel="nofollow" href="https://www.fuwuqiok.com">服务器安全维护工作室</a>。</p>
]]></content:encoded>
			<wfw:commentRss>https://www.fuwuqiok.com/%e9%98%bf%e9%87%8c%e4%ba%91docker-%e9%95%9c%e5%83%8f%e6%9c%8d%e5%8a%a1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
