Skip to content
Permalink
Browse files

Site updated at 2015-07-21 14:27:56 UTC

  • Loading branch information...
FengHan committed Jul 21, 2015
1 parent 93e9ffb commit bd85273c8233ec8d3dc732561c5f56f7201f38c4
@@ -9,7 +9,7 @@
<meta name="author" content="HanFeng">


<meta name="description" content=" 404 Not Found 分享到: Recent Posts 认识Docker 在Ubuntu上搭建Nginx + Php5-fpm Git的本地操作 使用Octopress在GitHub上搭建静态博客 ">
<meta name="description" content=" 404 Not Found 分享到: Recent Posts Docker小结 认识Docker 在Ubuntu上搭建Nginx + Php5-fpm Git的本地操作 使用Octopress在GitHub上搭建静态博客 ">


<!-- http://t.co/dKP3o1e -->
@@ -122,6 +122,10 @@ <h1 class="entry-title">404 Not Found</h1>
<h1>Recent Posts</h1>
<ul id="recent_posts">

<li class="post">
<a href="/blog/2015/07/21/docker-summary/">Docker小结</a>
</li>

<li class="post">
<a href="/blog/2015/07/19/docker/">认识Docker</a>
</li>
@@ -100,7 +100,7 @@ <h1 class="entry-title">About Me</h1>
<h3>Contact me:</h3>

<ul>
<li>Email: <a href="&#x6d;&#x61;&#105;&#x6c;&#116;&#x6f;&#58;&#x63;&#x6f;&#110;&#116;&#97;&#99;&#116;&#64;&#104;&#97;&#110;&#x66;&#101;&#110;&#x67;&#x2e;&#x6e;&#97;&#109;&#x65;">&#x63;&#x6f;&#x6e;&#116;&#97;&#99;&#116;&#64;&#x68;&#97;&#x6e;&#102;&#x65;&#x6e;&#x67;&#46;&#x6e;&#97;&#x6d;&#x65;</a></li>
<li>Email: <a href="&#x6d;&#x61;&#105;&#x6c;&#116;&#x6f;&#58;&#x63;&#111;&#110;&#116;&#97;&#x63;&#116;&#64;&#104;&#x61;&#110;&#102;&#x65;&#x6e;&#x67;&#46;&#x6e;&#97;&#109;&#x65;">&#99;&#x6f;&#110;&#x74;&#97;&#x63;&#x74;&#64;&#x68;&#x61;&#110;&#x66;&#101;&#x6e;&#103;&#x2e;&#x6e;&#x61;&#x6d;&#101;</a></li>
<li>Blog: <a href="http://hanfeng.name">http://hanfeng.name</a></li>
<li>GitHub: <a href="https://github.com/FengHan">https://github.com/FengHan</a></li>
</ul>
@@ -123,7 +123,7 @@ <h1>关于我</h1>
<h3>联系方式</h3>

<ul>
<li>邮件: <a href="&#109;&#97;&#105;&#108;&#x74;&#111;&#58;&#x63;&#111;&#x6e;&#116;&#x61;&#99;&#116;&#64;&#x68;&#97;&#110;&#102;&#101;&#x6e;&#103;&#x2e;&#x6e;&#x61;&#109;&#x65;">&#x63;&#111;&#110;&#116;&#x61;&#99;&#x74;&#64;&#104;&#x61;&#110;&#102;&#101;&#x6e;&#103;&#46;&#110;&#97;&#x6d;&#101;</a></li>
<li>邮件: <a href="&#109;&#x61;&#105;&#x6c;&#116;&#111;&#x3a;&#x63;&#x6f;&#x6e;&#x74;&#x61;&#99;&#116;&#64;&#104;&#x61;&#110;&#x66;&#x65;&#110;&#103;&#46;&#x6e;&#97;&#x6d;&#x65;">&#x63;&#x6f;&#x6e;&#x74;&#x61;&#99;&#116;&#64;&#104;&#97;&#x6e;&#102;&#101;&#x6e;&#103;&#x2e;&#110;&#x61;&#109;&#101;</a></li>
<li>博客: <a href="http://hanfeng.name">http://hanfeng.name</a></li>
<li>GitHub: <a href="https://github.com/FengHan">https://github.com/FengHan</a></li>
</ul>
@@ -140,6 +140,10 @@ <h3>联系方式</h3>
<h1>Recent Posts</h1>
<ul id="recent_posts">

<li class="post">
<a href="/blog/2015/07/21/docker-summary/">Docker小结</a>
</li>

<li class="post">
<a href="/blog/2015/07/19/docker/">认识Docker</a>
</li>
254 atom.xml
@@ -4,7 +4,7 @@
<title><![CDATA[hanfeng.name]]></title>
<link href="http://fenghan.github.io/atom.xml" rel="self"/>
<link href="http://fenghan.github.io/"/>
<updated>2015-07-21T15:17:29+08:00</updated>
<updated>2015-07-21T22:14:56+08:00</updated>
<id>http://fenghan.github.io/</id>
<author>
<name><![CDATA[HanFeng]]></name>
@@ -13,6 +13,258 @@
<generator uri="http://octopress.org/">Octopress</generator>


<entry>
<title type="html"><![CDATA[Docker小结]]></title>
<link href="http://fenghan.github.io/blog/2015/07/21/docker-summary/"/>
<updated>2015-07-21T21:07:41+08:00</updated>
<id>http://fenghan.github.io/blog/2015/07/21/docker-summary</id>
<content type="html"><![CDATA[<h1>前言</h1>
<p>这2天里,我了解Docker的初步使用, 并对本博客在<a href="www.daocloud.io">Daocloud</a>上的自动同步做了设置,<a href="http://hanfeng.daoapp.io">http://hanfeng.daoapp.io</a>, Daocloud正在搞活动,<a href="https://github.com/FengHan/fenghan.github.io/blob/master/Dockerfile">写Dockerfile</a>,生成镜像,部署Github代码,<a href="http://blog.daocloud.io/build-dockerfile-campaign/">免费送T-shirt!</a>。 本文主要记录两天所学,记录Docker的学习过程。</p>
<p><img src="http://7xkc1x.com1.z0.glb.clouddn.com/cto_Tshirt.jpg" alt="" /></p>
<h1>构建镜像</h1>
<p>构建镜像的目的:</p>
<ul>
<li>保存对容器的修改, 并在此使用</li>
<li>自定义镜像的能力</li>
<li>以软件的形式打包并分发服务器及其运行环境。</li>
</ul>
<p>构建镜像的两种方法:</p>
<ol>
<li><p>docker build 通过Dockfile文件构建</p></li>
<li><p>docker commit 通过容器构建</p></li>
</ol>
<h3>Dockerfile的制作</h3>
<p>对于开发人员来说,主要是使用Dockerfile来构建镜像,现在简单讲一下Dockerfile的语法</p>
<pre><code>FROM &lt;image&gt; 已经存在的镜像(基础镜像)
FROM &lt;image:tag&gt;
</code></pre>
<p>必须是第一条</p>
<pre><code>MAINTAIER hanfeng "contact@hanfeng.name"
</code></pre>
<p>指定镜像所有者信息</p>
<pre><code>RUN
</code></pre>
<p>指定当前镜像中运行得命令</p>
<pre><code>RUN echo hello (shell模式)
RUN ["executable", "param1", "param2"] (exec模式)
RUN["/bin/bash", "-c", "echo hello"]
</code></pre>
<p>每个RUN指令都会在当前的RUN指令上新创建一个镜像,是分层的。</p>
<pre><code>EXPOSE &lt;port&gt;[&lt;port&gt;]
EXPOSE 80
EXPOSE 80:80
EXPOSE 0.0.0.0:80:80
</code></pre>
<p>指定运行该镜像的容器使用的端口</p>
<p>只是告诉容器应该打开哪个端口,Dokcer不会自动打开。还是需要启动的时候指定端口</p>
<pre><code>CMD
CMD["executable",'param1','['param2'](exec模式)
</code></pre>
<p>能够被Docker run 后面的命令覆盖掉</p>
<pre><code>ENTRYPOINT
ENTRYPOINT COMMAND P1 P1
</code></pre>
<p>不会被docker run覆盖</p>
<p>容器运行时的指令</p>
<pre><code>ADD
</code></pre>
<p>适用于文件路径中有空格的情况</p>
<p>ADD 包含类似tar的解压功能</p>
<p>如果单独复制文件,建议使用COpy</p>
<pre><code>COPY
VOLUME
VOLUME["/data"]
</code></pre>
<p>镜像的目录和文件</p>
<pre><code>WORKDIR
WORKDIR /path/to/workdir
WORKDIR 使用绝对路径
ENV&lt;key&gt;&lt;value&gt;
USER daemon
USER nginx
USER root:root
</code></pre>
<p>环境设置</p>
<pre><code>ONBUILD
</code></pre>
<p>镜像触发器</p>
<p>当一个镜像被其他镜像作为基础镜像时执行。</p>
<p>会在构建过程中插入指令</p>
<p>简单的例子:</p>
<pre><code># First dockerfile for test
FROM ubuntu:14.04
MAINTAINER hanfeng "contact.hanfeng.name"
RUN apt-get update
RUN apt-get install -y nginx
EXPOSE 80
</code></pre>
<p>Dockerfile的构建过程</p>
<pre><code>docker build -t ="hanfeng/nginx"
docker run --name=web01 -p 80 -d hanfeng/nginx -g "daemon off;"
</code></pre>
<p>执行Dockerfile的每一条指令,执行相当于执行了docker commit一次,每条命令都会产生一个新的镜像层
执行Dockerfile的下一条命令</p>
<pre><code>docker history image
#查看构建镜像的历史命令
</code></pre>
<h3>镜像的发布</h3>
<pre><code>docker push qthhanfeng/nginx
</code></pre>
<h1>常用命令</h1>
<pre><code>docker run --name=web01 -it ubuntu /bin/bash
</code></pre>
<p>为容器制定一个名字</p>
<pre><code>docker start [-i] 容器名
</code></pre>
<p>重新启动停止的容器:</p>
<p>参数 -i 以参数的方式</p>
<p>在交互式时,Ctrl + P ,然后 Ctrl + Q</p>
<p>docker attach + 容器ID</p>
<hr />
<p>查看容器日志</p>
<pre><code>docker logs -f -t --tail 容器名
</code></pre>
<p>-f 更新</p>
<p>-t 时间戳</p>
<p>&ndash;tail 显示最新的</p>
<hr />
<pre><code>docker top 容器
#查看容器内进程
docker exec -d -i -t 容器名字
#在运行中的容器启动新进程
docker stop
#发送信号给容器,等待停止
docker kill 容器
#直接停止容器
</code></pre>
<p>设置容器的端口映射</p>
<pre><code>docker run -P -it ubuntu /bin/bash
</code></pre>
<p>-P &ndash;publish-all=true|false默认为fale,所有端口映射</p>
<p>-p &ndash;publish=[]</p>
<pre><code>docker run -p 80 -it ubuntu /bin/bash
#容器端口
docker run -p 8080:80 -it ubuntu /bin/bash
#宿主机端口:容器端口
docker run -p 0.0.0.0:80 -it ubuntu /bin/bash
#IP:容器端口
docker run -p 0.0.0.0:8080:80 -it ubuntu /bin/bash
#IP:宿主机端口:容器端口
docker run -p 80 --name web -it ubuntu /bina/bash
docker port web
docker top web
</code></pre>
<p>重启后,容器没有启动nginx, IP地址和端口映射都会发生改变</p>
<pre><code>docker exec web nginx
docker top web
</code></pre>
<h1>DaoCloud提供的加速</h1>
<pre><code>vim /etc/default/docker
DOCKER_OPTS="$DOCKER_OPTS --registry-mirror=http://字符串.m.daocloud.io"
#文件末尾添加
</code></pre>
<p>常用命令:</p>
<pre><code>docker inspect +仓库名:TAG名
#查看镜像
docker rmi +仓库名:TAG名
#删除TAG
docker rmi + 镜像ID
#删除这个镜像对应的所有TAG
docker rmi $(docker images ubuntu -q)
</code></pre>
<h1>Docker Hub</h1>
<p><a href="https://registry.hub.docker.com">https://registry.hub.docker.com</a></p>
]]></content>
</entry>

<entry>
<title type="html"><![CDATA[认识Docker]]></title>
<link href="http://fenghan.github.io/blog/2015/07/19/docker/"/>
@@ -418,6 +418,10 @@ <h1>Comments</h1>
<h1>Recent Posts</h1>
<ul id="recent_posts">

<li class="post">
<a href="/blog/2015/07/21/docker-summary/">Docker小结</a>
</li>

<li class="post">
<a href="/blog/2015/07/19/docker/">认识Docker</a>
</li>
@@ -541,6 +541,10 @@ <h1>Comments</h1>
<h1>Recent Posts</h1>
<ul id="recent_posts">

<li class="post">
<a href="/blog/2015/07/21/docker-summary/">Docker小结</a>
</li>

<li class="post">
<a href="/blog/2015/07/19/docker/">认识Docker</a>
</li>
@@ -352,6 +352,8 @@ <h1>Docker容器的创建、删除、停止、查看等基本命令</h1>
<a class="basic-alignment left" href="/blog/2015/07/19/nginx_php5-fpm/" title="Previous Post: 在Ubuntu上搭建Nginx + php5-fpm">&laquo; 在Ubuntu上搭建Nginx + php5-fpm</a>


<a class="basic-alignment right" href="/blog/2015/07/21/docker-summary/" title="Next Post: Docker小结">Docker小结 &raquo;</a>

</p>
</footer>
</article>
@@ -385,6 +387,10 @@ <h1>Comments</h1>
<h1>Recent Posts</h1>
<ul id="recent_posts">

<li class="post">
<a href="/blog/2015/07/21/docker-summary/">Docker小结</a>
</li>

<li class="post">
<a href="/blog/2015/07/19/docker/">认识Docker</a>
</li>
@@ -429,6 +429,10 @@ <h1>Comments</h1>
<h1>Recent Posts</h1>
<ul id="recent_posts">

<li class="post">
<a href="/blog/2015/07/21/docker-summary/">Docker小结</a>
</li>

<li class="post">
<a href="/blog/2015/07/19/docker/">认识Docker</a>
</li>

0 comments on commit bd85273

Please sign in to comment.
You can’t perform that action at this time.