创建属于你自己的 Docker 镜像上半部 (私人订制)

PriscillaKi 8年前
   <h2>Create-your-own-docker.io(for mac)</h2>    <p>Docker是一个开源的引擎,可以轻松的为任何应用创建一个轻量级的、可移植的、自给自足的容器。开发者在笔记本上编译测试通过的容器可以批量地在生产环境中部署,包括VMs(虚拟机)、bare metal、OpenStack 集群和其他的基础应用平台。</p>    <p>俺之前也是在mac上开虚拟机跑ubuntu.但无奈120G的硬盘不够用啊.于是折腾了下docker.</p>    <p>so 把自己的经历写下来.</p>    <h3>第一步:先注册个docker账号吧.反正总要用到的.</h3>    <p><a href="/misc/goto?guid=4958849364237785306" rel="nofollow,noindex">点击这里注册账号</a></p>    <p><img src="https://simg.open-open.com/show/62142ffd51fa59a6252716cb58ce26c9.png"></p>    <h3>第二步:下载docker</h3>    <p><a href="/misc/goto?guid=4959673896733712805" rel="nofollow,noindex">点击这里下载DockerToolbox</a></p>    <p>官方的指南是通过下载 DockerToolbox 来安装 docker, docker-machine 和其他辅助工具.</p>    <p>当然你也可以炫酷的通过命令行来安装</p>    <pre>  brew install docker   brew install docker-machine    </pre>    <p><img src="https://simg.open-open.com/show/aea827ad45e2c97b707929aed693c41a.png"></p>    <p>下载完后是这么个鬼东西</p>    <p><img src="https://simg.open-open.com/show/827381270e0ff6970d360f131ec4145e.png"></p>    <p>然后点击安装</p>    <p><img src="https://simg.open-open.com/show/19546d38f3a25bc79c3fc2cf55026eb4.jpg"> <img src="https://simg.open-open.com/show/8e8143e41b96ba973fe86406203656fc.jpg"></p>    <p>需要权限</p>    <p><img src="https://simg.open-open.com/show/0a367a429ad79af7b8c6b53eb13f22f8.jpg"> <img src="https://simg.open-open.com/show/94378d29697641191893c32e4a554695.jpg"> <img src="https://simg.open-open.com/show/88a423ff088d37dcff96d9489ac982eb.jpg"></p>    <p>下载完后会在你的applications中出现 <img src="https://simg.open-open.com/show/947ad009a6bc204b65dcbf877f6136b9.png"></p>    <p>Docker Quickstart Terminal:这个东西和下面那个东西都能在第一次启动时自动创建一个默认的虚拟机,就是default虚拟机.</p>    <p>Kitematic:是一款图形化界面的应用程序,可以启动停止我们的镜像容器.以及一些简单的命令.这个可以自己去看,接下来我们的操作将完全在命令行里.</p>    <p>VirtualBox:因为是非linux系统,所以mac需要借助VirtualBox中的linux虚拟机作为桥梁.</p>    <h3>第三步:先熟悉几个命令,拿nginx测试下</h3>    <p>这是个很重要的命令,接下来它是先锋,就不需要boot2docker这个东西了.</p>    <pre>  docker-machine  </pre>    <ul>     <li> <p>1.点击Docker Quickstart Terminal进去命令行,因为第一次启动已经默认创建一个虚拟机,所以不需要手动创建了.如果是命令行下载docker的:</p> <p>需要手动创建下:</p> <pre>  docker-machine create --driver virtualbox default  </pre> </li>     <li> <p>2.初始化环境变量</p> <p>显示宿主机需要为 default 虚拟机设置的环境变量的指令</p>      <ul>       <li>docker-machine env default</li>      </ul> <p>在宿主机中设置相应的环境变量</p>      <ul>       <li>eval $(docker-machine env default)</li>      </ul> <p><img src="https://simg.open-open.com/show/e6552a4fb2d28961c58daf7f309da75a.png"></p> </li>    </ul>    <p>警告:不设置好环境变量将无法使用 docker 命令</p>    <ul>     <li>3.接下来可以拿个hello-world来试试效果,看看能不能愉快的玩耍.</li>    </ul>    <pre>  docker run hello-world    </pre>    <p>如果看到那个Hello from Docker 就证明接下来你可以愉快的玩耍了.</p>    <p><img src="https://simg.open-open.com/show/3d27a7ae07ab1a08bd10c604c5f2452f.png"></p>    <p>查看容器</p>    <pre>  docker images  </pre>    <p>查看正在运行的容器</p>    <pre>  docker ps -l  </pre>    <p>删除容器(rmi与rm)</p>    <pre>  docker rmi   </pre>    <p>有时候这个命令并不能删除容器,所以执行docker ps -l 查看正在执行的容器.</p>    <p>使用docker rm (container id) 命令先删除在使用的容器.</p>    <p>有时候会出现错误,有可能是这个容器正在运行,那就先停止docker stop (container id)再删除.</p>    <p>然后在执行docker rmi命令,删除容器.</p>    <p><img src="https://simg.open-open.com/show/7608b1a9ed3347f3bb54e16382de4637.png"></p>    <ul>     <li>4.下载你需要的镜像,比如说拿个nginx来试试.</li>    </ul>    <pre>  docker pull nginx  </pre>    <p>这一步可能会很慢,因为是访问国外的镜像库,现在国内也出现一些比较好的镜像库,下面是 <a href="/misc/goto?guid=4959673896822728900" rel="nofollow,noindex">阿里云镜像入口</a></p>    <p>下拉完成后运行</p>    <pre>  docker run -d -P --name default nginx  </pre>    <p>docker run 命令启动一个容器,运行这个容器,然后退出,-d参数可以让容器在docker run命令完成之后继续在后台运行,-P参数会将容器的端口暴露给主机,这样你就可以从你的Mac访问它,--name 后面是接哪个虚拟机,default表示我们之前创建的默认虚拟机.nginx则是nginx服务</p>    <pre>  docker port default  </pre>    <p>上面命令是查看端口映射关系</p>    <pre>  docker-machine ip default  </pre>    <p>查看defalue虚拟机的ip</p>    <pre>  curl -I http://192.168.99.100:32773  </pre>    <p>先在命令行试试 <img src="https://simg.open-open.com/show/c9ae63d3445cc5dd65f442b9b43108a8.png"></p>    <p>在浏览器打开 <img src="https://simg.open-open.com/show/d7bd42af913cf72a6d237b273cb0ea4b.png"></p>    <p>O 啦.............</p>    <h3>第四步:创建自己的容器(以ubuntu14.04为例)</h3>    <p>先下载ubuntu14.04镜像 -t参数表示在容器中指定一个伪终端或终端,-i表示允许我们对容器进行交互,/bin/bash表示将在容器内启动bash shell</p>    <pre>  docker run -t -i ubuntu:14.04 /bin/bash  </pre>    <p>容器启动后你将看到这样一个命令提示符; 表示你已成功进入你的ubuntu系统,简直不要太方便,比在你的电脑上装虚拟机,然后在虚拟机里装ubuntu系统快了不是一点半点.</p>    <p><img src="https://simg.open-open.com/show/b620a973b37e188c67ffeb01d415aeee.png"></p>    <p>接下来就是完全在ubuntu系统里的操作了.</p>    <p>更新下apt-get.</p>    <p><img src="https://simg.open-open.com/show/3085f95568a010947da29177ff159d17.png"></p>    <p>然后在ubuntu里再下载一个nginx,原谅我如此钟爱nignx......</p>    <p><img src="https://simg.open-open.com/show/e34c504def072978dc9eb03575a02421.png"></p>    <p>下载完成后修改配置文件,改端口号80为8080或者其他啥的你随便...,然后重启下nginx:</p>    <p>修改配置,你得下载个vim或者nano:</p>    <pre>  sudo apt-get install vim  </pre>    <pre>  sudo apt-get install nano  </pre>    <p>下载个curl</p>    <pre>  sudo apt-get install curl  </pre>    <p>试试效果:</p>    <pre>  curl -I http://localhost:8080  </pre>    <p><img src="https://simg.open-open.com/show/1f1978f6e86d19cd7a1ef4c0172bbcd0.png"></p>    <h2><a href="/misc/goto?guid=4959673896903149819" rel="nofollow,noindex">ubuntu配置环境可以参考这里</a></h2>    <p>apache.nginx 配置差别不大</p>    <p> </p>    <p> </p>    <p>来自: <a href="/misc/goto?guid=4959673896989960375" rel="nofollow">https://github.com/alihanniba/Create-your-own-docker.io</a></p>    <p> </p>