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