运维学习————Docker自制镜像并上传至阿里云以及Docker Compose的使用

目录

一、Dockerfile

1、概念

2、语法

3、实例 

3.1、实例1

3.2、实例2

3.3、实例3 

二、Docker自制镜像

 1、需求

2、准备 

3、构建镜像运行容器 

​编辑 4、推送至阿里云镜像服务中心

三、Docker Compose

1、简介

2、基本概念 

3、⼆进制安装 

3.1、入门实例

3.2、完整配置详解


一、Dockerfile

1、概念

Dockerfile 是一个用来构建镜像的文本文件,文本内容包含了一条条构建镜像所需的指令和说明

2、语法

#FROM  设置镜像使用的基础镜像

FROM centos

#MAINTAINER 维护者信息(设置镜像作者)
MAINTAINER aaa

#RUN  编译镜像时运行的脚本

#包含两种模式:

1,shell 

RUN rpm -ivh /usr/local/xxx.rpm

RUN tar -zxvf /usr/local/xxx.tar.gz

2,exec

RUN ["executable","param1","param2"] 语法

RUN ["/bin/bash","-c","ls"] 等价于/bin/bash -c ls

#CMD 设置容器的启动命令

类似于 RUN 指令,⽤于运⾏程序,但⼆者运⾏的时间点不同

1、CMD 在docker run 启动镜像时运⾏

2、RUN 是在 docker build构建镜像时运⾏的

作⽤: 为启动的容器指定默认要运⾏的程序,程序运⾏结束,容器也就结束。 CMD 指令指定的程序可被 docker run 命令⾏参数中指定要运⾏的程序所覆盖.

如: CMD ["/usr/sbin/nginx","-g","daemon off;"] 等同于: /usr/sbin/nginx -g daemon off 在容器中以交互⽅式运⾏nginx(⾮守护⽅式)

#LABEL 设置镜像的标签,以键值对的形式,语法格式如下:

LABEL … ⽐如我们可以添加镜像的作者: LABEL image.authors="admin"

#EXPOSE  设置镜像暴露的端⼝ 可以是⼀个或者多个端⼝,也可以指定多个EXPOS EXPOSE [...]

EXPOSE 9090

#ENV 设置容器的环境变量

ENV PATH /usr/local/xxx/bin:$PATH


#ADD 添加外部⽂件到镜像(编译镜像时复制文件到镜像中)

ADD xxx.tar.gz /usr/local/

ADD xxx.rpm /usr/local/

ADD 指令和 COPY 的使⽤格式⼀致(同样需求下,官⽅推荐使⽤ COPY)。功能也类似,不同 之处如下:

ADD 的优点:在执⾏ 为 tar 压缩⽂件的话,压缩格式为 gzip, bzip2 以及 xz 的情况 下,会⾃动复制并解压到 。

ADD 的缺点:在不解压的前提下,⽆法复制 tar 压缩⽂件。会令镜像构建缓存失效,从⽽可能会 令镜像构建变得⽐较缓慢。具体是否使⽤,可以根据是否需要⾃动解压来决定

#COPY 复制指令,从上下⽂⽬录中复制⽂件或者⽬录到容器⾥指定路径

#容器内的指定路径,该路径不⽤事先建好,路径不存在的话,会⾃动创建。

#源⽂件或者源⽬录,这⾥可以是通配符表达式

COPY home?.txt /mydir/

#ENTERYPOINT 类似于 CMD 指令,但其不会被 docker run 的命令⾏参数指定的指令所覆盖,⽽且这些命令⾏参数会被当作参数送给 ENTRYPOINT 指令指定的程序。

但是, 如果运⾏ docker run 时使⽤了 --entrypoint 选项,将覆盖 entrypoint指令指定的 程序 优点:在执⾏ docker run 的时候可以指定 ENTRYPOINT 运⾏所需的参数。

注意:如果 Dockerfile 中如果存在多个 ENTRYPOINT 指令,仅最后⼀个⽣效

#格式: ENTERYPOINT [“executable”,“param1”,“param2”](exec模式)

ENTERYPOINT command (shell模式)

可以搭配 CMD 命令使⽤:⼀般是变参才会使⽤ CMD ,这⾥的 CMD 等于是在给 ENTRYPOINT 传参

#ARG 构建参数,与 ENV 作⽤⼀⾄。不过作⽤域不⼀样。ARG 设置的环境变量仅对 Dockerfile 内有效,也就是说只有 docker build 的过程中有效,构建好的镜像内不存在 此环境变量

作⽤: ARG:构建参数,只在构建过程中有效。可以通过 --build-arg 选项向 Docker 引擎传 递构建参数的值。

ENV:环境变量,在容器运⾏时有效。可以在构建过程中设置默认值,并在容器运⾏时 被使⽤。

#WORKDIR 指定⼯作⽬录。⽤ WORKDIR 指定的⼯作⽬录,会在

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值