【·CTO老王·】

教你怎么半天搞定Docker

 

首先,不要把docker想的那么高大,它不就是先做个镜像,然后通过docker像虚拟机一样跑起来嘛...docker其实在真实业务场景中还是非常有局限性的。Dockerfile脚本也没那么好写,有些应用也没有那么好安装。

废话不多说,教你半天搞定docker!

 

安装依赖和docker

 

安装docker,不建议直接使用Docker官方的yum install docker

wget http://yum.dockerproject.org/repo/main/centos/7/Packages/docker-engine-selinux-1.12.6-1.el7.centos.noarch.rpm
wget http://yum.dockerproject.org/repo/main/centos/7/Packages/docker-engine-1.12.6-1.el7.centos.x86_64.rpm
wget http://yum.dockerproject.org/repo/main/centos/7/Packages/docker-engine-debuginfo-1.12.6-1.el7.centos.x86_64.rpm

yum localinstall -y docker-engine-selinux-1.12.6-1.el7.centos.noarch.rpm docker-engine-1.12.6-1.el7.centos.x86_64.rpm docker-engine-debuginfo-1.12.6-1.el7.centos.x86_64.rpm

 

 开机启动项

systemctl enable docker

启动docker

service docker start

搜索公开容器镜像

docker search centos6.6

支持模糊搜索,但不要想着公开的容器有多好,适合公司业务的还是需要自己搭建。

NAME                                  DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
liangtong/centos6.6-httpd                                                             2                    
incu6us/centos6.6-with-nginx          Wav server for FreeCall                         0                    [OK]
eliezio/centos6.6-devtoolset2-gtest   Docker image based on Centos 6.6 suitable ...   0                    [OK]
chrisgeorge/centos6.6-py2.6           CentOS 6.6 with Python 2.6                      0                    [OK]
leonion/centos6.6                     centos6.6                                       0                    
heilee/centos6.6                                                                      0                    
karthi12345/centos6.6                                                                 0                    
kalramain/centos6.6-mysql55           mysql5.5 installed on centos6.6                 0                    

加载镜像容器

docker pull chrisgeorge/centos6.6-py2.6<NAME>

试运行

docker run -i -t chrisgeorge/centos6.6-py2.6 /bin/bash

docker run -it

这样就交互登录到你预先设计好的容器里面去了

 

安装应用
yum install openssh-server
#需要修改/etc/ssh/sshd_config文件中内容
PermitRootLogin yes
UsePAM no
ssh-keygen -q -N "" -t dsa -f /etc/ssh/ssh_host_dsa_key
ssh-keygen -q -N "" -t rsa -f /etc/ssh/ssh_host_rsa_key
mkdir /var/run/sshd
passwd 登录密码
/etc/init.d/sshd start

更新镜像
docker commit ID <name>

删除镜像

# docker rmi <neme>

docker rmi -f
启动
docker run -d -p 22 -p 8022:8000 chrisgeorge/centos6.6-py2.6 /usr/sbin/sshd -D

--restart=always 自动重启(始终)

将容器8000端口映射到docker服务器8022端口,将容器22端口随机映射端口

[root@SERVER docker]# docker ps
CONTAINER ID        IMAGE               COMMAND               CREATED             STATUS              PORTS                                           NAMES
0c65edbc3f3d        wy                  "/usr/sbin/sshd -D"   22 minutes ago      Up 22 minutes       0.0.0.0:32769->22/tcp, 0.0.0.0:8022->8000/tcp   mad_poitras


备份镜像
docker save chrisgeorge/centos6.6-py2.6 >/root/docker-pmd.tar


还原镜像
docker load < /root/docker-pmd.tar

 

想跑起来镜像,就必须每台机子装有docker。

 

Dockerfile

脚本:/home/docker/Dockerfile

FROM chrisgeorge/centos6.6-py2.6 #继承的父容器 
MAINTAINER wonter  #作者
RUN yum install nginx  #在新的容器里安装nginx
RUN echo "root:root" | chpasswd #设置密码
EXPOSE 22 #设置端口
CMD /etc/init.d/nginx start #启动服务

# docker build -t wonter .

 

#删除docker历史容器

docker ps -a -q | xargs docker rm

-v 挂载没有权限

 su -c "setenforce 0"

posted @ 2016-05-14 14:51 CTO老王 阅读(...) 评论(...) 编辑 收藏