docker-Dockerfile文件详解

docker-Dockerfile文件详解

大家好,又见面了,我是你们的朋友全栈君。

Dockerfile文件详解

  • FROM //指定基于哪个基础镜像

格式 FROM <image> 或 FROM <image>:<tag>
示例:

FROM centos
FROM centos:latest
  • MAINTAINER //指定作者信息

格式 MAINTAINER <name>
示例:

MAINTAINER apeng apeng@apenglinux.com
  • RUN //镜像操作指令

格式 RUN <command> 或 RUN [“executable”,”param1″,”param2″]
示例:

RUN yum install httpd
RUN ['/bin/bash',"-c","echo hello"]
  • CMD
    CMD [“executable”,”param1″,”param2″]
    CMD command param1 apram2
    CMD [“param1″,”param2”]
    示例:
CMD ["/bin/bash","/usr/local/nginx/sbin/nginx","-c","/usr/local/nginx/conf/nginx.conf"]
  • EXPOSE
    格式为 EXPOSE <port>[<port>…]
    示例:

    //指定要映射出去的端口
    // -P 自动分配端口
    // -p 指定具体的端口
    EXPOSE 22 80 9000
  • ENV

格式 ENV <key> <value>
示例:

ENV PATH /usr/local/mysql/bin:$PATH
  • ADD
    格式 add <src><dest>

    ADD <conf/vhosts></usr/local/nginx/conf>
  • COPY

格式同ADD
不支持url

  • ENTRYPOINT

容器启动时要执行的命令,它和CMD很像,也是有一条生效,如果写多个只有一条有效。和CMD不同是:
CMD是可以被docker run指令覆盖的,而ENTRYPOINT不能覆盖
如,容器名为 apeng
我们在Dockerfile中指定如下CMD
CMD [“/bin/echo”,”test”]
启动容器的命令是docker run -it apeng /bin/bash 什么都不输出
ENTRYPOINT不会覆盖,而且会比CMD或者docker run指定的命令要靠前执行
ENTRYPOINT [“echo”,”test”]
docker run -it apeng 123
则会输出 test 123,这相当于要执行命令echo test 123

  • VOLUME

格式 VOLUME [“/data”]
创建一个可以从本机或其他容器挂载的挂载点

  • USER

格式 USER daemon
指定运行容器的用户

  • WORKDIR

格式 WORKDIR /path/to/workdir
为后续的RUN、CMD、ENTRYPOINT指定工作目录

转载于:https://blog.51cto.com/13480443/2097447

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/107584.html原文链接:https://javaforall.net

(0)
上一篇 2022年4月2日 下午1:00
下一篇 2022年4月2日 下午1:35


相关推荐

  • docker(2)CentOS 7安装docker环境[通俗易懂]

    docker(2)CentOS 7安装docker环境[通俗易懂]前言前面一篇学了mac安装docker,这篇来学习在linux上安装docker环境准备Docker支持以下的CentOS版本,目前,CentOS仅发行版本中的内核支持Docker。Doc

    2022年7月28日
    8
  • jenkinsfile docker_dockerfile创建文件夹

    jenkinsfile docker_dockerfile创建文件夹前言之前我们用docker手动安装了jenkins环境,在jenkins中又安装了python3环境和各种安装包,如果我们想要在其他3台机器上安装,又是重复操作,重复劳动,那会显得很low,这里可以

    2022年7月28日
    32
  • docker网络的配置

    docker网络的配置docker网络的配置Linux内核实现名称空间的创建ipnetns命令可以借助ipnetns命令来完成对NetworkNamespace的各种操作。ipnetns命令来自于iproute安装包,一般系统会默认安装,如果没有的话,请自行安装。注意:ipnetns命令修改网络配置时需要sudo权限。可以通过ipnetns命令完成对NetworkNamespace的相关操作,可以通过ipnetnshelp查看命令帮助信息:[root@localhost~]#ipne

    2022年6月17日
    28
  • jenkin swindows启动_mac系统下docker 部署jenkin s

    jenkin swindows启动_mac系统下docker 部署jenkin smac 系统下 docker 安装 jenkins 前提需要安装完 docker 在进行以下步骤操作 1 为了方便容器内对配置文件进行修改 需要先创建 Jenkins 挂载目录并授权权限 mkdir Users a docker jenkins homechmod777 Users a docker jenkins home2 使用 dockerpullje jenkins 命令 拉取 Jenki

    2026年3月16日
    2
  • 宿主机ping不通docker容器_kali虚拟机ping不通

    宿主机ping不通docker容器_kali虚拟机ping不通问题描述:  Docker网络模式分为四种,一般我们不设置时默认为bridge单桥模式,容器使用独立的networkNamespace,并连接到docker0虚拟网卡中。通过docker0网桥以及Iptablesnat表配置与宿主机通信。  此时在堡垒机上进行测试,利用busybox进行测试:#拉取镜像dockerpullbusybox#运行容器dockerrun-itd–namebusy_bridgebusybox  指令dockernetworkinspect

    2022年8月21日
    15
  • docker 上传本地镜像_docker 上传镜像

    docker 上传本地镜像_docker 上传镜像前言之前通过docker搭建过jenkins+python3环境,如果想要在不同的机器上搭建一样的环境,就可以将之前搭建的镜像上传到镜像仓库,这样方便在不同的机器上快速搭建同一套环境。如果公开的话

    2022年7月28日
    19

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号