zoukankan      html  css  js  c++  java
  • docker的使用---创建新的镜像(通过修改容器,个人练手理解过程记录,不推荐使用)

    docker基础命令

    ##列出docker客户端命令
    docker
    docker container --help

    ##显示docker的版本和信息
    docker --version docker version docker info
    ##执行docker镜像生成一个容器(容器不是运行状态) docker run [镜像]

    ##列出docker镜像 docker image
    ls
    docker images
    ##列出docker容器(正在运行的,所有的,所有quiet模式的) docker container
    ls docker container ls --all docker container ls -aq

    #停止一个容器
    docker container stop [CONTAINER ID]

     通过修改容器来创建一个新镜像(python2.7.5 + node.js11.10.0 + flask +项目应用demo)

    步骤一:下载基础镜像----只包含centos的镜像(这个镜像里自带python2.7.5)

    #查看官方https://hub.docker.com已有的centos镜像
    docker search centos
    #选择合适自己镜像拉取到本地
    docker pull centos
    [root@izwz92fbqxna6qt4ya9t4nz soft]# docker search centos
    NAME                               DESCRIPTION                                     STARS               OFFICIAL            AUTOMATED
    centos                             The official build of CentOS.                   5205                [OK]                
    ansible/centos7-ansible            Ansible on Centos7                              120                                     [OK]
    jdeathe/centos-ssh                 CentOS-6 6.10 x86_64 / CentOS-7 7.5.1804 x86…   106                                     [OK]
    consol/centos-xfce-vnc             Centos container with "headless" VNC session…   80                                      [OK]
    imagine10255/centos6-lnmp-php56    centos6-lnmp-php56                              50                                      [OK]
    centos/mysql-57-centos7            MySQL 5.7 SQL database server                   47                              
    [root@izwz92fbqxna6qt4ya9t4nz soft]# docker pull centos
    Using default tag: latest
    latest: Pulling from library/centos
    Digest: sha256:184e5f35598e333bfa7de10d8fb1cebb5ee4df5bc0f970bf2b1e7c7345136426
    Status: Image is up to date for centos:latest

    步骤二:使用镜像centos创建并以后台模式运行该容器(不用-dit的话,运行之后容器状态不是up,注意-d和-dit不是一个命令)

    docker run -dit centos

    步骤三:找到容器并切入容器里

    #查看运行中的容器
    docker ps
    #查看所有容器
    docker ps -a
    #切进容器
    docker attach [CONTAINER ID 或 wizardly_kirch]
    docker exec -it [CONTAINER ID] /bin/bash
    #退出容器(退出之后容器也停止了)
    exit
    #退出容器(退出之后容器还在运行中)
    先ctrl+p 再 ctrl+q
    [root@izwz92fbqxna6qt4ya9t4nz soft]# docker ps -a
    CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                        PORTS                    NAMES
    8bf91340323d        centos              "/bin/bash"              3 minutes ago       Up 3 minutes                                           wizardly_kirch
    8c5d1bb19a3e        centos              "/bin/bash"              12 minutes ago      Exited (0) 3 minutes ago                               reverent_curran
    [root@izwz92fbqxna6qt4ya9t4nz soft]# docker attach 8bf91340323d
    [root@8bf91340323d /]# 

    有的镜像我直接使用docker attach命令可以正常切入容器中,有时候切进去又无反应,但是使用docker exec -it可以正常切入

    [root@localhost docker]# docker attach bfbcca966a49
    ls
    read escape sequence
    [root@localhost docker]# docker exec -it bfbcca966a49 /bin/bash
    jenkins@bfbcca966a49:/$ 

    ps:查看linux版本发现是centos7.6,python2.7.5

    [root@8bf91340323d /]# cat /etc/centos-release
    CentOS Linux release 7.6.1810 (Core) 
    [root@8bf91340323d /]# python  
    Python 2.7.5 (default, Oct 30 2018, 23:45:53) 
    [GCC 4.8.5 20150623 (Red Hat 4.8.5-36)] on linux2
    Type "help", "copyright", "credits" or "license" for more information.

    步骤四:在该容器里安装和配置所需的环境

    下载node.js的二进制包进行解压安装

    #从主机拷贝到容器的指定目录
    docker cp 要拷贝的文件路径 容器名:要拷贝到容器里面对应的路径
    #从容器拷贝到主机 docker
    cp 容器名:要拷贝到容器里面对应的路径 要拷贝的文件路径

     安装pip和flask,将项目代码也复制到容器中

    步骤五:从修改后的容器导出新的镜像centos:node_flask(镜像名:标签)

    [root@izwz92fbqxna6qt4ya9t4nz soft]# docker commit 541aff7533d9 centos:node_flask
    sha256:724f235e44ba18927651903e68f6802a455aa9b07b823acf48eb50865b8cce4a
    [root@izwz92fbqxna6qt4ya9t4nz soft]# docker images
    REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
    centos              node_flask          724f235e44ba        8 seconds ago       529MB
    docker              latest              73d492654a09        13 days ago         170MB
    hello-world         latest              fce289e99eb9        7 weeks ago         1.84kB
    centos              latest              1e1148e4cc2c        2 months ago        202MB
    [root@izwz92fbqxna6qt4ya9t4nz soft]# docker rmi docker
  • 相关阅读:
    帝国 标签模板 使用程序代码 去除html标记 并 截取字符串
    iis6 伪静态 iis配置方法 【图解】
    您来自的链接不存在 帝国CMS
    帝国cms Warning: Cannot modify header information headers already sent by...错误【解决方法】
    .fr域名注册 51元注册.fr域名
    帝国网站管理系统 恢复栏目目录 建立目录不成功!请检查目录权限 Godaddy Windows 主机
    星外虚拟主机管理平台 开通数据库 出现Microsoft OLE DB Provider for SQL Server 错误 '8004' 从字符串向 datetime 转换失败
    ASP.NET 自定义控件学习研究
    CSS层叠样式表之CSS解析机制的优先级
    ASP.NET程序员工作面试网络收藏夹
  • 原文地址:https://www.cnblogs.com/yy-cola/p/10417083.html
Copyright © 2011-2022 走看看