• 教你怎么半天搞定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"

  • 相关阅读:
    【web前端面试题整理03】来看一点CSS相关的吧
    【web前端面试题整理02】前端面试题第二弹袭来,接招!
    【web前端优化之图片模糊到清晰】看我QQ空间如何显示相片
    【web前端面试题整理01】各位加班累了吧,来做点前端面试题吧
    【javascript激增的思考03】MVVM与Knockout
    【javascript激增的思考02】模块化与MVC
    【javascript激增的思考01】模块化编程
    【position也可以很复杂】当弹出层遇上了鼠标定位(下)
    【position也可以很复杂】当弹出层遇上了鼠标定位(上)
    iOS开发拓展篇—音乐的播放
  • 原文地址:https://www.cnblogs.com/Javame/p/5492543.html
Copyright © 2020-2023  润新知