(1)something
###########docker info #################
# 核心信息!
Storage Driver overlay2 -->'存储驱动'
Runtimes:'runc'
# 下载高级版本,可能需要安装rhel7.5
# docker要利用防火墙的策略!
(2)安装环境
# 前面命令后续补充
sysctl -a|grep iptable
# net.bridge.bridge-nf-call-iptables = 1 说明:必须是1
# ip addr --> docker0 -->多了一个类似网卡的东西!
自动补全的细节:载 bash-* ,然后退出当前的环境,重新登陆即可生效!
(3)镜像的分层结构
共享宿主机的kernel
(1) base镜像提供的是最小的Linux发行版(基镜像-->base image)
(2) 同一docker主机支持运行多种Linux发行版-->(原因:发行版本在变,但内核不变)
(3) 采用分层结构的最大好处是:共享资源
图形展示!
细节
# 要深刻理解--->容器(动态-->理解tomcat的容器,就是一个运行环境)和镜像(静态)
# 查看指定镜像的创建历史:docker history(看层级结构)
# 通过docker history查看镜像构建过程(即Dockerfile)
# load -i(含义)-->用tar文件代替标准输入-->手动复制下载的不代表加入镜像的仓库中!
# load layer -->加载层次的含义!
(4)镜像的构建
docker commit vm2 ubuntu:v1
说明:根据此容器创建一个镜像,并提交到本地的镜像仓库!
细节
docker run -itd --name vm2 ubuntu
docker attach vm2 -->写入文件(此时vm2是活着的)
touch file{1..10} -->创建10个文件!
exit -->vm2是死的-->ps -a
docker commit vm2 ubuntu:v2 -->容器-->镜像!
#######################
docker history ubuntu:v2
docker history ubuntu:latest
对比:变化-->可以层(空白层)-->最上层,其余的是可读的
镜像构建的一些细节说明
docker build -f Dockefile -t busybox:v2 .
# 说明:默认会找Dockerfile文件,如果不是这个文件,则需要通过-f参数来指定构建镜像的文加!
# 关键字:Using cache -->为什么内容不是叠加的!
# 最好Dockerfile只在一个干净的目录中!
# 特点:Docker Client会默认把Dockerfile同级所有文件发给docker Deamon中!
###############使用Dockerfile Build镜像时构建文件过大######################
# 使用.dockerignore隐藏文件,设置黑名单,该文件包含的目录不会被发送到Docker daemon中
# 注意:构建的镜像会加入到本地镜像!