zoukankan      html  css  js  c++  java
  • docker 理解和一些应用

    1。镜像和容器是两个东西 一定要先理解,不然后期可能绕一点弯路

    镜像:如果我们本地没有 ubuntu 镜像,我们可以使用 docker pull 命令来载入 ubuntu 镜像

    docker images   :可以查看我们当前可使用的镜像

    容器:是生成的

    以下命令使用 ubuntu 镜像启动一个容器,参数为以命令行模式进入该容器:

    docker run -it ubuntu /bin/bash   :生成一个容器可以操作

      -i  交互式操作 

      -t    终端

      -d   后台运行,不会进入容器

      /bin/bash :放在镜像名后的是命令,这里我们希望有个交互式 Shell,因此用的是 /bin/bash

    容器:
    docker ps -a 查看所有的容器 stop 《容器的id》 停止容器 restart 《容器的id》 重启 exec 如果从这个容器退出,不会导致这个容器的停止 《docker exec -it 243c32535da7 /bin/bash
           attach 这个容器会停止
      
           port 《容器的id》查看指定映射的端口
     docker export 1e560fca3906 > ubuntu.tar 导出为镜像 cat docker/ubuntu.tar | docker import - test/ubuntu:v1 导入(镜像) 


    
    
     docker rm -f 1e560fca3906  删除一个容qi
    
    

     

    //导出的要为tar或者tar.gz //导入的是镜像,不是容器,docker images 可以查看

     

    镜像
    docker search httpd  搜索镜像
         images    查看镜像
         pull       获取新的镜像
         rmi    删除镜像
    创建镜像:
      1。从已经创建的容器中更新镜像,并且提交这个镜像
         docker run -t -i ubuntu:15.10 /bin/bash
          apt-get update(在容器中运行)
         在完成操作之后,输入 exit 命令来退出这个容器。此时 ID 为 e218edb10161 的容器,是按我们的需求更改的容器。我们可以通过命令 docker commit 来提交容器副本
        docker commit -m="has update" -a="runoob" e218edb10161 runoob/ubuntu:v2
        -m:提交的描述信息   -a:作者  
       2.我们使用命令 docker build , 从零开始来创建一个新的镜像。为此,我们需要创建一个 Dockerfile 文件,其中包含一组指令来告诉 Docker 如何构建我们的镜像
       vim  Dockerfile  
       代码为:
        FROM    centos:6.7
        MAINTAINER      Fisher "fisher@sudops.com"
        
        RUN     /bin/echo 'root:123456' |chpasswd
        RUN     useradd runoob
        RUN     /bin/echo 'runoob:123456' |chpasswd
        RUN     /bin/echo -e "LANG="en_US.UTF-8"" >/etc/default/local
        EXPOSE  22
        EXPOSE  80
        CMD     /usr/sbin/sshd -D
      
          每一个指令都会在镜像上创建一个新的层,每一个指令的前缀都必须是大写的。
    
          第一条FROM,指定使用哪个镜像源
    
          RUN 指令告诉docker 在镜像内执行命令,安装了什么。。。
    
          然后,我们使用 Dockerfile 文件,通过 docker build 命令来构建一个镜像。
    
       
    
          runoob@runoob:~$ docker build -t runoob/centos:6.7 .
          Sending build context to Docker daemon 17.92 kB
          Step 1 : FROM centos:6.7
           ---> d95b5ca17cc3
          Step 2 : MAINTAINER Fisher "fisher@sudops.com"
           ---> Using cache
           ---> 0c92299c6f03
          Step 3 : RUN /bin/echo 'root:123456' |chpasswd
           ---> Using cache
           ---> 0397ce2fbd0a
          Step 4 : RUN useradd runoob
          ......
    
        -t :指定要创建的目标镜像名
    
        . :Dockerfile 文件所在目录,可以指定Dockerfile 的绝对路径
          我们可以使用新的镜像来创建容器
          
          runoob@runoob:~$ docker run -t -i runoob/centos:6.7  /bin/bash
          [root@41c28d18b5fb /]# id runoob
          uid=500(runoob) gid=500(runoob) groups=500(runoob)
          从上面看到新镜像已经包含我们创建的用户 runoob。
    设置镜像标签:
      docker tag 860c279d2fec runoob/centos:dev   会看到860c279d2fec会多一个标签tag
    

      

    Docker Dockerfile

    Dockerfile 是一个用来构建镜像的文本文件,文本内容包含了一条条构建镜像所需的指令和说明。

     

  • 相关阅读:
    使用QQ邮箱发送邮件,QQ邮箱的smtp设置
    Linux常用命令
    Pycharm批量查找替换功能
    HTML/CSS学习笔记
    什么样的人适合做自动化测试
    如何测试一个WEB的输入框?
    我收集的学习网站
    SQL查询练习(一)
    linux消息队列应用编程
    linux共享内存简单介绍以及编码演示
  • 原文地址:https://www.cnblogs.com/aoxueshou/p/13256900.html
Copyright © 2011-2022 走看看