docker----安装初步使用构建镜像Dockerfile编写通过Dockerfile文件封装nginx镜像并优化
Posted S4061222
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了docker----安装初步使用构建镜像Dockerfile编写通过Dockerfile文件封装nginx镜像并优化相关的知识,希望对你有一定的参考价值。
本质为进程,共享su主机,不需要像虚拟机一样封装虚拟机,无额外消耗(操作系统),19版本不支持普通用户调用docker
一.docker安装和初步使用
1.配置软件仓库, 安装docker-ce(19版本的社区版),启动服务
2.docker info查看容器信息
如果出现warning,内核参数设置为1,sysctl --system ##需重启(内核参数)
3.查看ip
4.iptables -L
5.下载2048小游戏和maria的景象
6.本地拉取2048景象,查看镜像
7.发布2048小游戏
8.测试
9.发布玛丽奥游戏
10.测试
二.构建景象:(两种方式)
共享su主机的kernel,容器景象更小,不需要内核,base image(景象的内核文件系统)。分层意义:减少本地带宽和磁盘占用,共享资源,每层进行校验
从上至下读取,可写容器层。
实验环境:
1./var/lib/docker:所有docker数据存放位置,景象,容器,网络等
2.拉取镜像,并建立文件
本地有不需要拉取景象,使用load方式
3.启动容器
ps:列出运行的,-a所有,start:启动
4.连接容器, 此时容器内已有文件
打入后台运行
1.方式一:commit三步曲
1。运行容器
2。修改容器
-it交互式的,终端,
3。将容器保存为新的镜像
查看:
2.方式二:编写Dockerfile
创建一个Dockerfile
回收容器:rm / rm -f(正在运行)
rmi:删除景象
dockerfile:不要方root下,发送到docker 引擎(dockerfile当前目录!)
创建镜像
-t:docker景象名称
查看
文件中多一行内容后,run后会增加一层
三.Dockerfile的编写
安装nginx的两种方式: (1)直接 pull nginx.tar (网络良好,从默认的官方仓库中拉取或者自己搭建的似有仓库), (2)自己源码编译dockerfile文件方式安装
方式一
实验环境:
命令方式测试:
将su主机(server1)的docker.repo 文件复制给容器
方式二
1.编写Dockerfile文件
COPY:必须在当前环境的文件
EXPOSE:端口
CMD:覆盖
ENTPYIONT:[]不会覆盖,只能一个,不会调用shell解析
2.build
3.查看镜像
4.测试
docker的ip
编写默认测试方不页内容,测试访问成功
5.查看镜像中内容
四.Dockerfile方式构建景象的优化
上述编写后执行,创建v1,源码安的nginx过大进行优化
1.方式一
减小景象层数
清理中间产物(debug,缓存,/mnt/nginx)
2.方式二
多阶段构建
3.方式三
编写dockerfile文件
[root@server1 docker]# cat Dockerfile
FROM nginx:latest as base
# https://en.wikipedia.org/wiki/List_of_tz_database_time_zones
ARG TIME_ZONE
RUN mkdir -p /opt/var/cache/nginx && \\
cp -a --parents /usr/lib/nginx /opt && \\
cp -a --parents /usr/share/nginx /opt && \\
cp -a --parents /var/log/nginx /opt && \\
cp -aL --parents /var/run /opt && \\
cp -a --parents /etc/nginx /opt && \\
cp -a --parents /etc/passwd /opt && \\
cp -a --parents /etc/group /opt && \\
cp -a --parents /usr/sbin/nginx /opt && \\
cp -a --parents /usr/sbin/nginx-debug /opt && \\
cp -a --parents /lib/x86_64-linux-gnu/ld-* /opt && \\
cp -a --parents /lib/x86_64-linux-gnu/libpcre.so.* /opt && \\
cp -a --parents /lib/x86_64-linux-gnu/libz.so.* /opt && \\
cp -a --parents /lib/x86_64-linux-gnu/libc* /opt && \\
cp -a --parents /lib/x86_64-linux-gnu/libdl* /opt && \\
cp -a --parents /lib/x86_64-linux-gnu/libpthread* /opt && \\
cp -a --parents /lib/x86_64-linux-gnu/libcrypt* /opt && \\
cp -a --parents /usr/lib/x86_64-linux-gnu/libssl.so.* /opt && \\
cp -a --parents /usr/lib/x86_64-linux-gnu/libcrypto.so.* /opt && \\
cp /usr/share/zoneinfo/${TIME_ZONE:-ROC} /opt/etc/localtime
FROM gcr.io/distroless/base-debian10
COPY --from=base /opt /
EXPOSE 80 443
ENTRYPOINT ["nginx", "-g", "daemon off;"]
五.镜像常用命令
1.导入和导出镜像
save:导出,-o指定镜像名称
load:导入
修改名称
2.prune:不用的景象删除
以上是关于docker----安装初步使用构建镜像Dockerfile编写通过Dockerfile文件封装nginx镜像并优化的主要内容,如果未能解决你的问题,请参考以下文章
10.Docker-----安装初步使用镜像Dockerfile常用指令通过Dockerfile文件封装nginx镜像并优化