首页 > 其他分享 >Docker Dockerfile指令大全

Docker Dockerfile指令大全

时间:2023-08-14 17:23:44浏览次数:44  
标签:容器 data CMD 指定 ENTRYPOINT 镜像 Docker Dockerfile 大全

FROM-指定基础镜像

指定基础镜像,并且Dockerfile中第一条指令必须是FROM指令,且在同一个Dockerfile中创建多个镜像时,可以使用多个FROM指令。

# 语法格式
FROM <image>
FROM <image>:<tag>

# 如果不写<tag>则默认以latest为基准

RUN-运行指定的命令

构建镜像过程中需要执行的命令。可以有多条。
语法格式,如下所示:

# shell格式:就像在命令行中输入的Shell脚本命令一样。
RUN <command> 

# exec格式:就像是函数调用的格式。
RUN ["executable", "param1", "param2"] 

CMD-容器启动时要运行的命令

语法格式,如下所示:

# 第一种就是shell这种执行方式和写法
CMD command param1 param2
# 第二种是可执行文件加上参数的形式(推荐)
CMD ["executable","param1","param2"] 
# 该写法是为 ENTRYPOINT 指令指定的程序提供默认参数
CMD ["<param1>","<param2>",...]


CMD [ "sh", "-c", "echo $HOME" ]
CMD [ "echo", "$HOME" ] 

ENTRYPOINT-为容器指定默认运行程序

ENTRYPOINT或者CMD指令只能写一条,如果写了多条,那么,ENTRYPOINT或者CMD都只有最后一条生效。
与CMD不同的是,由ENTRYPOINT启动的程序不会被docker run命令行指定的参数所覆盖,而且,这些命令行参数会被当作参数传递给ENTRYPOINT指令指定的程序
语法如下:

# exec格式(推荐)
ENTRYPOINT ["executable", "param1", "param2"] 

# shell格式
ENTRYPOINT command param1 param2

MAINTAINER-指定生成镜像的作者名称

MAINTAINER <name>

EXPOSE-为容器打开指定要监听的端口以实现与外部通信

# 这里的“-P”选项是关键,在启动容器的使用使用-P,
# Docker会自动分配一个端口和转发指定的端口,
# 使用-p可以具体指定使用哪个本地的端口来映射对外开放的端口。

ENV-设置环境变量

示例:

ENV word hello
RUN echo $word

ARG-设置环境变量

构建参数ARG和ENV指令一样,都是设置环境变量。不过作用域不一样。ARG 设置的环境变量仅对 Dockerfile 内有效,也就是说只有 docker build 的过程中有效,构建好的镜像内不存在此环境变量。即在将来容器运行时是不会存在这些环境变量的。但是不要因此就用ARG来保存密码之类的信息

ARG <参数名>[=<默认值>]

ADD-复制文件或者目录到容器里指定路径

将本地文件或目录拷贝到镜像的文件系统中。能解压特定格式文件,能将URL作为要拷贝的文件

ADD /data/src/nginx-1.14.0.tar.gz /data/src/

# 构建镜像
docker build -t nginx:v1.1  .

# 创建容器
docker run --rm --name nginx -it  nginx:v1.1  ls /data/src

# 我们可以发现已经解压了nginx-1.14.0.tar.gz文件

COPY-复制文件或者目录到容器里指定路径

从上下文目录中复制文件或者目录到容器里指定路径。

样例:

# 复制宿主机文件index.html到容器/data/html/index.html
COPY index.html /data/html/index.html

# 复制宿主机data目录下文件(包括子目录)到容器/data/目录下,并不会复制目录本身
COPY data  /data/

VOLUME-定义匿名数据卷

定义匿名数据卷,可实现挂载功能,可以将内地文件夹或者其他容器中得文件夹挂在到这个容器中。在启动容器时忘记挂载数据卷,会自动挂载到匿名卷。
在启动容器 docker run 的时候,我们可以通过 -v 参数修改挂载点。

USER-指定执行后续命令的用户和用户组

默认情况下,容器的运行身份为root用户。

WORKDIR-指定工作目录

docker build 构建镜像过程中的,每一个 RUN 命令都是新建的一层。只有通过 WORKDIR 创建的目录才会一直存在。

标签:容器,data,CMD,指定,ENTRYPOINT,镜像,Docker,Dockerfile,大全
From: https://www.cnblogs.com/XxMa/p/17629228.html

相关文章

  • RocketMQ Docker安装
    安装NameServer创建NameServer映射路径mkdir/usr/local/rocketmq/namesvr/{logs,data}-p#设置权限chmod777-R/usr/local/rocketmq/nameserver/*创建NameServer容器dockerrun-d\--privileged=true\--namermqnamesrv\apache/rocketmq:5.1.0shmqnamesrv将容器中......
  • DockerNotes
    1镜像1.1镜像仓库   镜像仓库  1.2拉取镜像dockerpullmysql 1.3操作镜像#查看镜像dockerimages 2容器2.1创建容器dockerrun-d--namemyMysql-eMYSQL_ROOT_PASSWORD=123456-p3306:3306mysql(1)成功启动会自动运行,用dockerps查看......
  • docker swarm 使用详解
    转载请注明出处:1.dockerswarm的组成架构一个基本的dockerswarm的架构如下:它主要包含这几个核心组件:Manager节点(ManagerNodes):管理节点是Swarm集群的控制中心,负责整个集群的管理和调度。Swarm可以有一个或多个Manager节点,其中一个被选举为Leader,负责领导整......
  • Linux操作系统下docker的安装
    文档课题:Linux操作系统下docker的安装.系统:centos7.964位1、删旧版docker[root@Leo-Docker~]#yumremovedocker\docker-client\docker-client-latest\docker-common\docker-latest\docker-latest-logrotate\docker-logrotate\docker-engine\podman\runc......
  • macOS zsh 配置 docker 自动补全
    maczsh配置docker自动补全在终端中使用docker的命令的时候必须要全部手敲,没有提示,于是就在找是否有自动补全的脚本,搜索了一圈踩了一些坑总结了一下具体的步骤。首先执行如下命令:mkdir-p~/.zsh/completioncurl-Lhttps://raw.githubusercontent.com/docker/docker-ce/......
  • win10中Docker安装、构建镜像、创建容器、Vscode连接实例
    Docker方便一键构建项目所需的运行环境:首先构建镜像(Image)。然后镜像实例化成为容器(Container),构成项目的运行环境。最后Vscode连接容器,方便我们在本地进行开发。下面以一个简单的例子介绍在win10中实现:Docker安装、构建镜像、创建容器、Vscode连接使用。Docker安装首先进......
  • docker网络 bridge 与overlay 模式
    转载请注明出处:1.bridge网络模式工作原理: 在Bridge模式中,Docker通过创建一个虚拟网络桥接器(bridge)将容器连接到主机上的物理网络接口。每个容器都会被分配一个IP地址,使得它们可以相互通信,并且可以与主机进行通信。Docker的Bridge网络模式是默认的网络配置选项,它提供了容......
  • 本地启动 ABAP Platform Trial 的 Docker 命令行程序
    Docker是一个开源的容器化平台,用于轻松地构建、发布和运行应用程序。DockerDesktop是适用于Windows和Mac的Docker桌面应用程序,它允许用户在本地运行和管理容器化应用程序。在本文中,我们将详细介绍以下两个命令行并解释每个参数的含义:dockerpullsapse/abap-platform-trial:190......
  • Windows10下安装docker 并启动 rabbitmq
    1.官网下载docker:https://hub.docker.com/editions/community/docker-ce-desktop-windows 2.安装docker:运行下载好的DockerforWindowsInstaller.exe 3.安装好后启动docker: 4.修改成国内镜像仓库:https://q3a36twa.mirror.aliyuncs.com  5.拉取rabbitmq,在cmd窗......
  • Docker入门
    一、安装1、linux安装(老师的方法:)https://blog.csdn.net/jeffleo/article/details/709043682、内核升级(CentOS6.X升级内核至3.10)https://blog.csdn.net/jeffleo/article/details/709041503、阿里云的docker镜像仓库https://c.163yun.com/hub#/m/library/https://......