zoukankan      html  css  js  c++  java
  • docker容器的构建

    构建容器的方法:

    (1)命令docker  commit

    运行容器的三个步骤:运行+修改+保存镜像

    例子:

    拉取镜像

    docker pull centos

    创建容器

    docker run -itd e934aafc2206 /bin/bash

    进入容器修改容器

    docker exec -it e6e5f719f74c /bin/bash

    yum -y install net-tools vim

    将修改后的容器做成镜像

    docker commit e6e5f719f74c centos-with-vim/nettools:1.0

    删除修改后的容器

    docker ps

    docker rm -f e6e5f719f74c

    docker ps

    docker images

    测试修改后的镜像是不是你添加的东西

    docker run -it centos-with-vim/nettools:1.0

     

    (2)dockerfile构建文件,

    例子:

    vim dockerfile

    FROM centos

    RUN yum install net-tools -y

    RUN yum install elinks -y

    CMD ["/bin/bash"]

    执行dockerfile文件

    docker build -t centos-nginx:test ./

    注释;

    centos-nginx:test 新镜像名称:标签

        

     

    (4)查看镜像执行过程,

    docker history centos-with-vim/nettools:1.0

     

    (5)镜像的缓存特性:

    1.当镜像里执行过的层就会跳过,执行新添加的层以及往下的已经有的或者没有的层.修改的时候

    2.新增加的数据之只能往上层增加,才会有缓存特性,不能往下层增加,否则缓存特效就美誉了,也就会重写这个文件,如果不想要这个缓存特性,则添加no-cache

    vim testfile

    This is wode coustom imags

    :wq

     

    vim dockerfile

    FROM centos

    RUN yum install net-tools -y

    COPY testfile /

    RUN yum install elinks -y

    CMD ["/bin/bash"]

     

     

    (6)容器的调试方法:

    vim dockerfile

    FROM busybox

    RUN yum install net-tools -y

    COPY testfile /

    RUN yum install elinks -y

    CMD ["/bin/bash"]

     

    docker build -t haha:test ./

     

    docker run -it 进入报错的上一个容器运行,然后并执行报错的命令,这是排除错误思路

     

     

     

    (7)一次性容器运行

    docker run  -it e934aafc2206

     

    添加: 

    docker文件的参数详解

    vim dockerfile

    FROM: 基础镜像

    MAINTAINER:作者信息

    COPY:src(host) dest(container)

    ADD:拷贝到container同时解压

    ENV:变量

        ENV my_version 1.3

        RNN yun install httpd-$my-version

    EXPOSE:指定容器中的进程监听某个端口

    VOLUME:目录文件映射到容器

    WORKDIR:为后面所有的命令提供目录

    RUN:容器运行的命令

    CMD:容器启动时运行的命令(可被代替)

    ENTRYPOINT:容器启动时的执行命令,只能有一个,不会被替换。

     

     

  • 相关阅读:
    linux上实现jmeter分布式压力测试(转)
    The more,the better。
    DP_括号匹配序列问题
    MySQL基础语句
    大端模式和小端模式
    C++:bitset用法
    TCP三次握手和四次握手
    静态库与动态库
    DP_最长公共子序列/动规入门
    二维数组和指针
  • 原文地址:https://www.cnblogs.com/Leonardo-li/p/8822132.html
Copyright © 2011-2022 走看看