乐趣区

关于dockerfile:Dockerfile的初次使用

什么是 dockerfile

Dockerfile 的作用与 docker-compose 相似,也同样是为了配置环境而存在的,那么 docker-file 有什么非凡之 dockerFile 官网文档
处呢?

就目前所知,docker-compose 咱们在应用时需配置 image 项也就是咱们须要的环境项例如咱们须要 mysql 环境就配置为 mysql:XXX, 其余同理。

咱们想要配置什么样的环境就须要在 docker-hub 官网网址中寻找相应的配置项,并按其示例进行配置,换句话说如果咱们所需的环境在 docker-hub 官网网址中不存在咱们就不能只应用 docker-compose 来进行配置。

比方咱们想要一键配置好运行 angular 单元测试的环境,咱们就无奈在 docker-hub 官网网址中找到对应的环境。

这时候咱们就须要本人配置镜像(image)通过 Dockerfile 并上传到阿里云 - 容器镜像服务中,从而能够在近程间接通过其公网地址加版本号(例:registry.cn-beijing.aliyuncs.com/mengyunzhi_li/node_ding_push:14.16.2)进行调用咱们自定义的 image。

如何编写简略的 dockerfile

明确了 dockerfile 的性能,下一步就是要理解 dockerfile 如何编写
dockerFile 官网文档
首先咱们要晓得一些根底指令
1: FROM: 用于指定根底镜像,在咱们自定义的镜像须要以某个镜像为根底时进行配置

例如:FROM  node:14.16.0-stretch

2:RUN:有多种应用形式,集体了解为在 image 构建时执行的命令

例如:RUN "command" "param1" "param2"

留神:构建时执行指在拉取环境到本地创立容器时不会执行,因为 image 早曾经在阿里云镜像服务中构建完了。

3:CMD:与 RUN 相似,区别是其中的命令会在启动容器时执行

例如:CMD "command" "param1" "param2"

留神:
1、CMD 在 Dockerfile 中只能呈现一次,有多个,只有最初一个会无效。
2、其作用是在启动容器的时候提供一个默认的命令项。如果用户执行 docker run 的时候提供了命令项,就会笼罩掉这个命令。没提供就会应用构建时的命令。

4:COPY:复制本机文件或目录或近程文件,增加到指定的容器目录

COPY ./send-ding.sh /

注:下面咱们将本地的 send-ding.sh 上传到了容器中,这使得咱们能够在 dockerFile 容器中调用此脚本
docker
–Dockerfile
–send-ding.sh

理论问题

上面我的指标是创立一个 image,能够让它在被调用时主动执行指定脚本。

FROM node:14.16.0-stretch
RUN apt-get update
RUN apt install -y curl
RUN apt-get clean
COPY ./send-ding.sh /
RUN sh send-ding.sh -a 1ab5179dd94ed62de026d96ba61b41b1dda42357fdf79a787f11c7708449a06d -t markdown -c pipeine 运行失败 -T "tiT,,le"
CMD ["sh", "send-ding.sh", "-a","1ab5179dd94ed62de026d96ba61b41b1dda42357fdf79a787f11c7708449a06d", "-t", "markdown", "-c", "pipeine 运行失败", "-T", "'tiT,,le'"]

注:RUN 和 CMD 后的指令为两种模式,理论应用时都能够

本地测试

1、本地创立 image

 sudo docker build . -t=ding-file:1.2

2、查看咱们创立的 image

sudo docker image ls

3、依据 image 创立容器

sudo docker run -it ding-file:1.2 

4、查看钉钉发现进行了推送即执行如期进行

退出移动版