dockerfile萌新基础版

Dockerfile用于构建镜像,包含FROM、RUN等指令。FROM指定基础镜像,RUN执行命令。CMD和ENTRYPOINT定义容器启动时运行的程序,ENTRYPOINT允许接收参数。过多无意义的Dockerfile指令会导致镜像过大。
摘要由CSDN通过智能技术生成

在bitahub上孩子都是用的平台上的镜像,多多少少是有点不方便的。
镜像还是自己写的放心 —某同门师兄

在这里插入图片描述

镜像(Image): Docker 镜像(Image),就相当于是一个 root 文件系统。比如官方镜像 ubuntu:16.04 就包含了完整的一套 Ubuntu16.04 最小系统的 root 文件系统。
**容器(Container):**镜像(Image)和容器(Container)的关系,就像是面向对象程序设计中的类和实例一样,镜像是静态的定义,容器是镜像运行时的实体。容器可以被创建、启动、停止、删除、暂停等。
仓库(Repository):仓库可看成一个代码控制中心,用来保存镜像。

看一下dockerfile的书写格式吧。

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

比较基础的两个:(其实这些的大小写无所谓,但是为了区分一般用大写)

FROM: 定制的镜像都是基于 FROM 的镜像
RUN: 用于执行后面跟着的命令行命令。
看一小段例子:

FROM nvidia/cuda:11.7.1-cudnn8-runtime-ubuntu20.04
RUN apt update && \
    apt install -y bash \
                   build-essential \
                   git \    
                   curl \
                   openssh-client \
	   openssh-server \
                   ca-certificates \

前面是FROM
如果是两个命令的话会用 &&\ 做间隔,如果是一个命令里面的两个东西的话用\

看底下的最后一行,就算有空格也是可以用 \的哦

在这里插入图片描述

当然也可以写一堆RUN,但是Dockerfile 的指令每执行一次都会在 docker 上新建一层。所以过多无意义的层,会造成镜像膨胀过大。

CMD:类似于 RUN 指令,用于运行程序,但二者运行的时间点不同:

CMD 在docker run 时运行。
RUN 是在 docker build。

举个例子:
在这里插入图片描述
那你要在运行的时候输入这个玩意:
在这里插入图片描述

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

但是, 如果运行 docker run 时使用了 --entrypoint 选项,将覆盖 ENTRYPOINT 指令指定的程序。

优点:在执行 docker run 的时候可以指定 ENTRYPOINT 运行所需的参数。

注意:如果 Dockerfile 中如果存在多个 ENTRYPOINT 指令,仅最后一个生效。


FROM nginx

ENTRYPOINT ["nginx", "-c"] # 定参
CMD ["/etc/nginx/nginx.conf"] # 变参 

1、不传参运行

$ docker run nginx:test
容器内会默认运行以下命令,启动主进程。

nginx -c /etc/nginx/nginx.conf
2、传参运行

$ docker run nginx:test -c /etc/nginx/new.conf
容器内会默认运行以下命令,启动主进程(/etc/nginx/new.conf:假设容器内已有此文件)

nginx -c /etc/nginx/new.conf

大概就先这样,这docker就这么让我把门入了,以后慢慢琢磨了

部分参考:https://www.runoob.com/docker/docker-architecture.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值