Centos下Docker安装和使用

by pxz


发布于: 2017-06-01 所属分类: 工具 linux docker 标签: docker  176


<h3 id="h3--strong-centos7-strong-"><a name="<strong>一. centos7 安装方法</strong>" class="reference-link"></a><span class="header-link octicon octicon-link"></span><strong>一. centos7 安装方法</strong></h3><ol> <li><p>安装 yum-utils<br>yum install -y yum-utils</p> </li><li><p>添加 docker-ce 的yum配置源<br>yum-config-manager \<br>—add-repo \<br><a href="https://download.docker.com/linux/centos/docker-ce.repo">https://download.docker.com/linux/centos/docker-ce.repo</a></p> </li><li><p>安装 docker<br>yum install docker-ce</p> </li><li><p>使用国内镜像加速<br>curl -sSL <a href="https://get.daocloud.io/daotools/set_mirror.sh">https://get.daocloud.io/daotools/set_mirror.sh</a> | sh -s <a href="http://eb730c90.m.daocloud.io">http://eb730c90.m.daocloud.io</a></p> </li><li><p>启动docker服务<br>systemctl start docker</p> </li></ol> <h3 id="h3--strong-centos6-centos6-docker-strong-"><a name="<strong>二. centos6 安装方法, centos6下安装的docker不支持镜像加速</strong>" class="reference-link"></a><span class="header-link octicon octicon-link"></span><strong>二. centos6 安装方法, centos6下安装的docker不支持镜像加速</strong></h3><ol> <li><p>安装<br>yum install docker-io;</p> </li><li><p>启动<br>service docker start</p> </li></ol> <h3 id="h3--strong-strong-"><a name="<strong>三. 使用方法</strong>" class="reference-link"></a><span class="header-link octicon octicon-link"></span><strong>三. 使用方法</strong></h3><p><strong>1. 制作一个 nginx + php-fpm 运行环境的镜像</strong></p> <p>1) 下载 centos6.7 镜像<br>docker pull centos:6.7<br>2) 使用 centos:6.7 镜像运行 /bin/bash, 此时会进入一个容器终端界面<br>docker run -i -t —name centos67 centos:6.7 /bin/bash<br>3) 在容器里面安装 epel<br>curl -O <a href="https://dl.fedoraproject.org/pub/epel/epel-release-latest-6.noarch.rpm">https://dl.fedoraproject.org/pub/epel/epel-release-latest-6.noarch.rpm</a><br>rpm -ivh epel-release-latest-6.noarch.rpm<br>4) 在容器里面安装 nginx<br>yum install -y nginx<br>5) 在容器里面安装php<br>yum install -y php-fpm<br>6) 在容器里面配置nginx<br>此处省略配置过程….<br>7)由于该镜像是多进程的, 需要新建一个启动脚本, 该脚本需要长期运行, 以保证docker容器进程不会退出, 启动脚本放置于 /init.sh, 示例如下:</p> <p><pre>!/bin/bash<br>/usr/sbin/php-fpm -D<br>/usr/sbin/nginx</p> <p>while [[ true ]]; do<br>sleep 1<br>done<br></pre><br>8) 配置完成后exit退出容器<br>exit<br>9) 查看刚刚退出的容器id<br>docker ps -a # 执行后第二行第一列就是刚刚退出的容器的id<br>9) 提交容器到镜像<br>docker commit 752c14447fa7 zsg/nginxphp # 752c14447fa7为容器id, zsg/nginxphp是自定义的镜像名称<br>10) 提交完成之后, 执行 docker images 可以看到自已提交的镜像已经在images列表</p> <p><strong>2. 使用上一步自定义的镜像启动一个新的容器,</strong></p> <p>docker run -i -t -d zsg/nginxphp sh /init.sh #启动容器</p> <p><strong>3. 查看正在运行的容器, 可以找到刚启动的容器id</strong></p> <p>docker ps</p> <p><strong>4. 查看容器的ip地址</strong></p> <p>docker inspect d3f33db801f2 # 执行后可以找到容器的ip地址, 类似于 “IPAddress”: “172.17.0.6”</p> <p><strong>5. 测试是否php环境是否正常运行</strong></p> <p>curl <a href="http://172.17.0.6/">http://172.17.0.6/</a></p> <p><strong>6. 如果镜像需要分享给其它人使用, 可以导出</strong></p> <p>1) 方法1: 从容器导出<br>docker export -o nginxphp.tar 0ea61be6f96f # 对应的导入方法为 docker import nginxphp.tar zsg/nginxphp<br>2) 方法2: 从镜像导出<br>docker save -o nginxphp.tar zsg/nginxphp # 对应的导入方法为 docker load -i nginxphp.tar</p> <p><strong>7. 推送镜像到镜像仓库</strong></p> <p>docker login daocloud.io #登陆, 需要先在<a href="http://hub.daocloud.io网站注册账号">http://hub.daocloud.io网站注册账号</a><br>docker tag 288f9abc1024 daocloud.io/zsgdctest/nginxphp #为镜像打tag<br>docker push daocloud.io/zsgdctest/nginxphp #推送镜像</p> <h3 id="h3--strong-strong-"><a name="<strong>四. 常用命令</strong>" class="reference-link"></a><span class="header-link octicon octicon-link"></span><strong>四. 常用命令</strong></h3><p>docker pull centos:7 #下载镜像<br>docker images #查看本地镜像列表<br>docker ps # 查看正在运行的容器<br>docker ps -a #查看所有的容器<br>docker ps -a -q #查看所有的容器, 只列出容器id<br>docker commit ffca8692a8ef zsg/nginx #提交容器, ffca8692a8ef为容器id, zsg/nginx为自定义镜像名, 提交后执行 docker images 可看到提交的刚刚提交的镜像<br>docker run -i -t —name centos7 centos:7 /bin/bash #使用centos:7镜像运行一个名称为centos7的容器, 运行脚本为 /bin/bash<br>docker run -d -i -t zsg/nginx sh /init.sh #启动一个守护进程容器<br>docker stop 1b6a8cbb6b58 #停止一个容器<br>docker attach centos67test1 #附加到一个正在运行的容器<br>docker logs centos67test1 #查看容器输出<br>docker rm 2386f4373bde #删除一个容器<br><code>docker rm `docker ps -a -q` </code> #删除所有已停止的容器<br>docker inspect d3f33db801f2 #可查看容器的ip<br>docker port d3f33db801f2 #查看容器和主机的端口映射关系<br>docker export -o myweb.tar 0ea61be6f96f #导出容器, 老版本的导出方法是 docker export 0ea61be6f96f > myweb.tar<br>docker import nginxphp.tar zsg/nginxphp #从导出的tar包导入成名称为zsg/myweb的镜像<br>docker rmi zsg/nginxphp #删除镜像, 删除前需要删掉所有关联的容器</p>

发表评论

暂无评论

搜索
用户登陆