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:容器启动时的执行命令,只能有一个,不会被替换。

 

 

posted @ 2018-04-13 17:34  Leonardo-li  阅读(231)  评论(0编辑  收藏  举报