---恢复内容开始---
1.容器在执行完命令后会停止运行
2.容器=镜像+可读写文件
3.创建镜像
文件统一系统支持镜像叠加,可在基础镜像之上根据需要加入新的镜像
4.dockerfile文件
由一组有序指令和参数构成,每条指令被执行后都会生成并提交一个新的镜像层
5.若dockerfile中某条指令执行失败,之前的指令会提交一个正确的镜像
6.构建缓存的概念
若某个dockerfile被执行过,再次执行此文件时,被执行过的指令不会再次被执行,docker从第一条尚未被执行过的指令开始指向dockerfile文件
优点:利用已经生成的镜像,节省重新生成镜像所需的时间
缺点:有时需要消除缓存,使执行过的指令重新执行
完全消除缓存的方法:
docker build --no-cache
局部消除缓存的方法:
若某条指令需要重新执行,可在它之前加入一条新指令或对他之前的指令做修改
---恢复内容结束---
1.容器在执行完命令后会停止运行
2.容器=镜像+可读写文件
3.创建镜像
文件统一系统支持镜像叠加,可在基础镜像之上根据需要加入新的镜像
4.dockerfile文件
由一组有序指令和参数构成,每条指令被执行后都会生成并提交一个新的镜像层
5.若dockerfile中某条指令执行失败,之前的指令会提交一个正确的镜像
6.构建缓存的概念
若某个dockerfile被执行过,再次执行此文件时,被执行过的指令不会再次被执行,docker从第一条尚未被执行过的指令开始指向dockerfile文件
优点:利用已经生成的镜像,节省重新生成镜像所需的时间
缺点:有时需要消除缓存,使执行过的指令重新执行
完全消除缓存的方法:
docker build --no-cache
局部消除缓存的方法:
若某条指令需要重新执行,可在它之前加入一条新指令或对他之前的指令做修改
使用docker pull下载镜像时失败的原因可能是网速太慢,可以用阿里云之类的加速器
docker0好像捕捉不到数据包?
答:可能是有延迟,等一会看看
外部无法与容器应用进行主动通信是为什么?
答:因为docker容器端口没有对外公开,在dockerfile里或docker run 时应对外公开应用的端口
公开端口时可能出现如下错误:
COMMAND_FAILED: '/sbin/iptables -t nat -A Docker -p tcp -d 0/0 --dport 8111 -j DNAT --to-destination 172.17.0.6:8111 ! -i docker0' failed: iptables: No chain/target/match by that name.
解决方法如下:
pkill docker
iptables -t nat -F
ifconfig docker0 down
brctl delbr docker0
重启docker后解决
docker容器若停止运行,则对外公开的端口会失效
Dockerfile构建镜像
创建一个dockerfile文件的步骤:
1.创建一个新目录
2.进入这个目录
3.在新建目录下创建Dockerfile
4.在当前目录下执行docker build命令
docker容器为最小化安装,不带网络命令,可执行yum install net-tools,下载命令包