[13th][Day15] dockerfile 指令

第一个 dockerfile 中已经用过几个指令了

RUN
EXPOSE

接下来会遇到的还有

CMD
ENTRYPOINT
ADD
COPY
VOLUME
WORKERDIR
USER
ONBUILD
LABAL
STOPSINGAL
ARG
ENV
...etc

更多请见 https://docs.docker.com/engine/reference/builder/

CMD 用於一个 container 启动时要运行的指令

前天我的 dockerfile

FROM ubuntu:20.04
MAINTAINER Eric "[email protected]"
RUN apt-get update &&  apt-get install -y nginx
RUN echo 'Hi ,I am in your container ' \
    >/usr/share/nginx/html/index.html
EXPOSE 80

所以在启动时我需要在 docker run 後面加上 bash 才会进入 shell
https://ithelp.ithome.com.tw/upload/images/20210922/20119546X1kd8Jmjvv.png

如果加上一行

CMD bash
FROM ubuntu:20.04
MAINTAINER Eric "[email protected]"
RUN apt-get update &&  apt-get install -y nginx
RUN echo 'Hi ,I am in your container ' \
    >/usr/share/nginx/html/index.html
CMD bash
EXPOSE 80

# I'm a comment

就能在 run 时就省去 bash

docker run -it eric211924/try_dockerfile:v2

https://ithelp.ithome.com.tw/upload/images/20210923/201195465HIeyyPjfw.png

直接进入 shell

一个 Dockerfile 中只会能指定一条 CMD
如果写了多个 CMD ,只有最後一个 CMD 会作用

WORKDIR

用 image create 新 container 时,在 container 内部指定一个工作目录,ENTRYPOINT & CMD 会在这个目录下执行

FROM ubuntu:20.04 AS builder
WORKDIR /var/lib/nginx
CMD ["ls"]

上面的 ls 指令就会在 /var/lib/nginx 中执行

COPY 可以把本机的档案复制到 image 中
COPY source destination

ADD 的格式和 COPY 相同
ADD source destination

除了在 multistage 以外,ADD 可以满足 COPY 的所有功能,除此之外还有:
解压缩并加入 image
从 url 复制档案到 image


<<:  @Day23 | C# WixToolset + WPF 帅到不行的安装包 [87分帅的WPF外观]

>>:  D15 - 转移资料到TiDB工具介绍(二)

Day 26 介绍 vite

vite 是 Vue.js 的作者所做的一个新的 bundler ,如果你有用过应该会知道,它最特别...

AE霓虹灯练习3-Day18

继昨天的练习,今天要完成 1.接下来制作灯管亮光的部分,将LOGO图层复制一层,并将最上方的图层改名...

[Day 22] JS - 事件委派 Delegation

前言 不知不觉每日的挑战发文活动,也进行到22天了,这件事已经变成每日必做的事,像平日就是工作结束後...

【PHP Telegram Bot】Day14 - 基础(3):字串处理与正规表示式

在程序里第二个常出现的就是字串处理啦 运算子 连接运算子 说明 用法 . 连接 x . y .= ...

Episode 5 - 输入与输出

如果画面太小或看不清楚,可移驾至 https://www.youtube.com/watch?v=...