本质为进程,共享su主机,不需要像虚拟机一样封装虚拟机,无额外消耗(操作系统),19版本不支持普通用户调用docker
在这里插入图片描述

一.docker安装和初步使用

1.配置软件仓库, 安装docker-ce(19版本的社区版),启动服务

在这里插入图片描述在这里插入图片描述

2.docker info查看容器信息

在这里插入图片描述如果出现warning,内核参数设置为1,sysctl --system ##需重启(内核参数)

[root@server1 sysctl.d]# pwd
/etc/sysctl.d
[root@server1 sysctl.d]# vim  docker.conf 
net.bridge.bridge-nf-call-iptables = 1
net.bridge.bridge-nf-call-ip6tables = 1
[root@server1 sysctl.d]# 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:不用的景象删除

在这里插入图片描述在这里插入图片描述

Logo

瓜分20万奖金 获得内推名额 丰厚实物奖励 易参与易上手

更多推荐