栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

Docker

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Docker

Docker 容器
    • 1.什么是Docker
    • 2.Docker 容器的安装
    • 3.镜像的构建
      • 修改容器后的数据保存
        • 方法一
        • 方法二
      • Dockerfile 详解
      • 用Dockerfile 写nginx 镜像

1.什么是Docker

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

2.Docker 容器的安装

wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo 安装yum源 放到/etc/yum.repos.d/ 目录里

编辑 此文件 没用的删除 vim
[docker-ce-stable]
name=Docker CE Stable - $basearch
baseurl=https://mirrors.aliyun.com/docker-ce/linux/centos/7/ $basearch/stable
enabled=1
gpgcheck=0
安装centos源
wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
并修改

安装 Docker -ce 并启动docker info 查看信息

出现警告解决办法 编写.conf文件 sysctl --system使之生效

3.镜像的构建

docker pull ubuntu 拉取镜像
docker run -d --name demo -p 80:80 ubuntu 运行容器
docker images 查看所有镜像信息
docker rmi yakexi007/mario 删除镜像
docker run -it --rm ubuntu 交互式运行
docker rm -f demo 删除容器
docker inspect nginx 查看镜像详情信息
docker commit 从容器创建镜像
docker build 从 Dockerfile构建镜像
docker search 搜索镜像
docker history 查看镜像构建历史

修改容器后的数据保存 方法一


ctrl +q+p
docker commit -m “add files” e289c8d58f1d ubuntu:v1 保存到了 v1 镜像 原来镜像不变 修改后的 数据 另存镜像

此方法 不显示修改内容 不建议使用

方法二

创建 目录 并且创建名为 Dockerfile 的文件 编辑

docker build -t ubuntu:v2 . 构建 -t 指定镜像名称

每一层干了什么 都明确写出 建议使用这个保存方法

Dockerfile 详解

常用指令
FROM 指定base 镜像如果不存在 会从远程仓库下载
MAINTAINER 设置镜像的作者 比如邮箱等
COPY 复制当前目录的文件 到 镜像
ADD 被指定的文件会自动 归档解压
ENV 指定变量
EXPOSE 暴露端口指定端口
VOLUME 数据卷挂载 可以 把 镜像中的文件 挂载到真实机 /var/lib/docker/volumes 目录底下一个随机文件名的data 下面
WORKDIR 相当于shell中的 cd命令 进入 目录 如果目录不存在 会自动创建
RUN 在容器中运行命令 通常 用于安装 复制 install cp
CMD 与 ENTRYPOINT 都是设置容器启动后执行的命令 CMD会被 docker run命令后跟的命令覆盖,ENTRYPOINT不会 ,这个命令后有两种写法 ①echo “hello,$ name"②[”/bin/echo",“-c”“hello,$ name”]

用Dockerfile 写nginx 镜像

编写Dockerfile 内容
FROM centos:7
ADD nginx-1.21.6.tar.gz /mnt
WORKDIR /mnt/nginx-1.21.6
RUN yum install -y gcc
RUN yum install -y pcre-devel
RUN yum install -y openssl-devel
RUN yum install -y make
RUN ./configure --with-http_stub_status_module --with-http_ssl_module
RUN make
RUN make install
EXPOSE 80
CMD [“/usr/local/nginx/sbin/nginx”, “-g”, “daemon off;”]

完成后 比较大 进行优化 修改Dockerfile 进行优化
FROM centos:7 as build
ADD nginx-1.21.6.tar.gz /mnt
WORKDIR /mnt/nginx-1.21.6
RUN yum install -y gcc pcre-devel openssl-devel make && sed -i ‘s/CFLAGS=" $ CFLAGS -g"/#CFLAGS=“$ CFLAGS -g”/g’ auto/cc/gcc && ./configure --with-http_stub_status_module --with-http_ssl_module && make && make install && rm -fr /mnt/nginx-1.21.6 && yum remove -y gcc make && yum clean all
FROM centos:7
COPY --from=build /usr/local/nginx /usr/local/nginx
EXPOSE 80
CMD [“/usr/local/nginx/sbin/nginx”, “-g”, “daemon off;”]


利用谷歌的 容器工具 来完成 更小优化 编辑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 /usr/lib/x86_64-linux-gnu/libpcre* /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-debian11
COPY --from=base /opt /
EXPOSE 80 443
ENTRYPOINT [“nginx”, “-g”, “daemon off;”]



优化完成

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/972760.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号