docker容器(镜像的建立(dockerfile详解)、应用容器化(搭建镜像及优化))

Docker是管理容器的引擎
Docker为应用打包、部署平台、而非单纯的虚拟化技术

docker容器的优势
对于开发人员:一次建立、可以在任何地方运行
对于运维人员:一次配置、可以运行任何东西

配置仓库
vim docker.repo
[docker]
name=docker-ce
baseurl=https://mirrors.aliyun.com/docker-ce/linux/centos/7/x86_64/stable/
gpgcheck=0
在这里插入图片描述
执行curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo,/etc/yum.repo下就会出现CentOS-Base.repo
替换sed -i -e ‘/mirrors.cloud.aliyuncs.com/d’ -e ‘/mirrors.aliyuncs.com/d’ /etc/yum.repos.d/CentOS-Base.repo

vim CentOS-Base.repo
%s/$releasever/7/g
在这里插入图片描述
yum install -y docker-ce
cd /etc/sysctl.d/
vim docker.conf
net.bridge.bridge-nf-call-iptables = 1
net.bridge.bridge-nf-call-ip6tables = 1
在这里插入图片描述
systemctl enable --now docker.service ##开启服务
此时就会出现一个docker0的桥接口
在这里插入图片描述

doker镜像

镜像的分层结构
1.共享宿主机的kernel
2.base镜像提供的是最小的linux发行版
3.同一docker主机支持运行多种linux发行版
4.采用分层结构的最大好处就是:共享资源
5.Copy-on-write可写容器层
6.容器层以下所有镜像层都是只读的
例如在镜像中建立了文件,在退出再次进入后发现没有建立的文件
7.docker从上往下依次查找文件
8.容器层保存镜像变化的部分,并不会对镜像本身进行任何修改
9.一个镜像最多127层
docker pull busybox ##拉取busybox
docker images ##查看镜像
在这里插入图片描述
docker history busybox:latest ##查看busybox的层级
在这里插入图片描述
docker run -it busybox ##运行
在这里插入图片描述
i ##交互式 t ##终端

镜像的建立

docker commit构建新镜像三部曲
运行容器
修改容器
将容器保存为新的镜像
缺点
效率低、可重复性弱、容易出错
使用者无法对镜像进行审计、存在安全隐患

cd /root
mkdir docker
cd docker/
vim Dockerfile
在这里插入图片描述

dockerfile详解

FROM

docker build -t demo:v1 . ##建立
在这里插入图片描述
此时的镜像会有审计
在这里插入图片描述
基于demo :v1建立
在这里插入图片描述
在这里插入图片描述
COPY

vim index.html
在这里插入图片描述
vim Dockerfile
在这里插入图片描述
docker build -t demo:v1 . ##建立
docker run -it --rm demo:v1 ##进入后可以看到文件被copy到/
在这里插入图片描述
ADD

tar zcf test.tar.gz /etc ##生成一个压缩包
vim Dockerfile
在这里插入图片描述
docker build -t demo:v2 . ##建立
docker run -it --rm demo:v2 ##进入后可以看到已经解压
在这里插入图片描述
ENV

vim Dockerfile
在这里插入图片描述
docker build -t demo:v3 . ##建立
docker run -it --rm demo:v3 进入可以看到添加了变量
在这里插入图片描述
EXPOSE

vim Dockerfile
在这里插入图片描述
docker build -t demo:v4 .
下载nginx.tar
docker load -i nginx.tar ##导入
docker run -d --name demo nginx ##运行
docker inspect demo ##查看具体信息就能看到80端口
在这里插入图片描述
VOLUME

vim Dockerfile
在这里插入图片描述
docker build -t demo:v5 . ##建立
docker run -it --name demo demo:v5 ##运行
在里面建立文件
docker inspect demo 查看,可以看到已经挂载
在这里插入图片描述
到var/lib/docker/volumes/c49a34096181f0521ab9bc51eaea8e955351bd7752250c00e6b534d5cebeb9ea/_data目录下就可以看到建立的文件
在这里插入图片描述
此时将docker1删除,在copy一个文件进来,重新进入后可以看到文件
在这里插入图片描述
用此方法可以做数据持久化

CMD

vim Dockerfile
在这里插入图片描述
docker build -t demo:v6 . ##建立
docker run --rm demo:v6 ##运行
在这里插入图片描述
也可以解析变量
vim Dockerfile
在这里插入图片描述
docker build -t demo:v7 .
docker run --rm demo:v7
在这里插入图片描述
vim Dockerfile
docker build -t demo:v8 .
docker run --rm demo:v8
在这里插入图片描述
此时不能解析
要想获得解析,需要做如下操作
vim Dockerfile
在这里插入图片描述
docker build -t demo:v10 .
docker run --rm demo:v10
在这里插入图片描述
vim Dockerfile
在这里插入图片描述
docker build -t demo:v10 .
docker run --rm demo:v11
在这里插入图片描述
此时在后面+什么就会出现什么,因为覆盖了CMD
在这里插入图片描述

应用容器化

加速

cd /etc/docker
vim daemon.json
在这里插入图片描述

容器化及优化

vim dvd.repo
在这里插入图片描述
下载nginx-1.18.0.tar.gz
vim Dockerfile
在这里插入图片描述
在这里插入图片描述
此时,我们布出的容器有144M,而rhel7镜像有140M,所以容器只有4M
但是我们还可以对其进行优化,但是以下这些库文件必须包含
在这里插入图片描述
下载base-debian10.tar
在这里插入图片描述
它只有19.2M,所以可以用它来做基础镜像
cd docker/
docker pull nginx:1.18.0 ##拉取nginx:1.18.0
cd …
mkdir nginx
cd nginx/
vim Dockerfile
在这里插入图片描述
docker build -t webserver:v2 . ##建立
docker images webserver ##查看
在这里插入图片描述
可以看到镜像只有31.7M
测试
docker run -d --name webserver webserver:v2 ##执行
docker inspect webserver ##查看
在这里插入图片描述
此时可以看到nginx的发布目录,说明布置成功

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值