• docker之dockerfile的使用


    2. 容器基本管理
    2.0 容器的类型:
    工具类: vim
    [root@gukai vim]# docker run -it --name="test_vim" bb41d99ad12f
    服务类:nginx
    [root@gukai ~]# docker run -d -p 8080:80 --name="discuz" nginx:1.14

    2.1容器的多累启动方式:
    (1)交互式启动
    [root@gukai ~]# docker run -it --name "testcentos" centos:6.9 /bin/bash
    主要针对于工具类的容器, 一旦exit容器,容器就自动关闭
    (2)守护式启动
    1.交互启动容易+ctrl+p+q
    [root@gukai ~]# docker run -it --name "testcentos" centos:6.9 /bin/bash
    按住 CRTL +P +Q
    [root@gukai ~]# docker attach testcentos
    #再次进入容器内的镜像进程中
    2.2. 死循环

    2.3. 服务前端运行
    sshd -D
    nginx -g ""

            [root@gukai ~]# docker run -it --name "old_sshv1" centos:6.9 /bin/bash
            [root@2044a497987c /]# passwd 
            [root@2044a497987c /]# /etc/init.d/sshd start    #重要:ssh第一次启动时,需要生成密钥,生成pam生成验证
    
            [root@2044a497987c /]# /usr/sbin/sshd -D    #"hang"运行sshd,并丢到后台
            按住 CRTL +P +Q        #退出到原来的宿主机上
    
            [root@gukai ~]# docker commit old_sshv1 oldgukai/sshd:v1    #创建一个新的镜像
    
            1.启动一个基础容器
            2.安装所需要的应用
            3.让应用hang运行
        

    docker stop
    docker kill


    docker start -i
    docker restart 容器ID|容器名字

    docker rm 容器ID|容器名字
    docker rm -f `docker ps -a -q`

    dockerfile高级使用说明

    基本功能:
    
    FROM
    RUN
    CMD
    ENTRYPOINT
    
    
    常用功能:
    EXPOSE
    USER
    ENV
    ADD
    COPY
    VOLUME
    WORKDIR
    ONBUILD

    小练习:
    1. 如何双系统: sshd +httpd

    [root@gukai openssh]# mkdir -p /opt/Docketfile/app/openssh
    
    [root@gukai openssh]# cat Dockerfile 
    FROM centos:6.9
    RUN mv /etc/yum.repos.d/*.repo /tmp
    RUN echo -e "[ftp]
    name=ftp
    baseurl=ftp://192.168.181.128/pub/centos6
    gpgcheck=0">/etc/yum.repos.d/ftp.repo
    RUN yum makecache fast && yum install openssh-server -y
    RUN yum install -y vim
    RUN yum install -y httpd
    RUN echo "123"|passwd --stdin root
    RUN /etc/init.d/sshd start
    EXPOSE 22
    EXPOSE 80
    ADD ssh_httpd.sh /opt/ssh_httpd.sh
    CMD ["/bin/bash","/opt/ssh_httpd.sh"]
    
    
    
    [root@gukai openssh]# cat ssh_httpd.sh
    #!bin/bash
    /etc/init.d/httpd start
    /usr/sbin/sshd -D
    sshd+httpd 安装2个程序的使用脚本起来的方法

    #############以上是自定义基于centsos6.9的镜像自定义一个安装好了ssh 和httpd服务的镜像
    #注意 sshd 服务一定要开启, 一定要设置好密码 EXPOSE 22 EXPOSE 80 端口一定要打开
    #注意 这次的CMD 使用的是脚本的形式开启的


    [root@gukai openssh]# docker build -t "gukai/ssh_httpd:v1" /opt/Docketfile/app/openssh
    #开始制作镜像文件

    [root@gukai openssh]# docker run -it -p 8080:80 -p 2222:22 --name "testssh" gukai/ssh_httpd:v1 /bin/bash
    #开启docker的镜像文件到docker内


    2. 双系统: sshd +httpd +volumns

    [root@gukai openssh]# mkdir -p /opt/Docketfile/app/ssh_httpd
    
    [root@gukai openssh]# cat Dockerfile 
    FROM centos:6.9
    RUN mv /etc/yum.repos.d/*.repo /tmp
    RUN echo -e "[ftp]
    name=ftp
    baseurl=ftp://192.168.181.128/pub/centos6
    gpgcheck=0">/etc/yum.repos.d/ftp.repo
    RUN yum makecache fast && yum install openssh-server -y
    RUN yum install -y vim
    RUN yum install -y httpd
    RUN echo "123"|passwd --stdin root
    RUN /etc/init.d/sshd start
    EXPOSE 22
    EXPOSE 80
    ADD ssh_httpd.sh /opt/ssh_httpd.sh
    VOLUME /var/www/html
    CMD ["/bin/bash","/opt/ssh_httpd.sh"]        
    
    
    [root@gukai openssh]# cat ssh_httpd.sh
    #!bin/bash
    /etc/init.d/httpd start
    /usr/sbin/sshd -D

    #这里的是可以直接吧容器内的数据保存在自己的宿主机上,查看使用的是 inspect 命令可以看到

  • 相关阅读:
    Debug相关的一些小技巧
    <Information Storage and Management> 读书笔记 之二
    <<Information Storage and Management>>读书笔记 之三
    LINQ to SQL语句(2)之Select/Distinct【转】
    Asp.Net MVC实践 探索UrlRouting并分析UrlHelper (基于ASP.NET MVC Preview 3) 【转】
    MVC学习之分页 【转】
    在 ASP.NET MVC 项目中使用 WebForm 【转】
    Asp.net Mvc Codeplex Preview 5 第三篇 实现Action参数传递繁杂类型 【转】
    jQuery入门[1]-构造函数 【转】
    LINQ to SQL语句(1)之Where【转】
  • 原文地址:https://www.cnblogs.com/gukai/p/10827334.html
Copyright © 2020-2023  润新知