首页 > 其他分享 >docker file

docker file

时间:2024-09-06 11:39:18浏览次数:8  
标签:容器 -- CMD file 格式 镜像 docker dockerfile

docker file
dockerfile是一个文本格式的配置文件,用户可以使用dockerfile快速的创建和自定义镜像。
docker一般由四部分组成:基础镜像信息(父镜像)、维护者信息、镜像操作、容器启动时执行的命令。dockerfile可以通过#标识注释。
dockerfile的格式都是采用“指令用户定义的内容”,注意如果在书写dockerfile时,配置了某个指令,则该指令一定要存在用户定义的内容。

配置指令
ARG:定义创建镜像过程中使用的变量 格式:ARG a run.sh 使用$a调用
FROM:指令所创建的镜像的父镜像 格式:FROM 镜像name:标签
LABEL:为生成的镜像添加元数据标签信息 格式:LABEL key=value
EXPOSE:声明镜像内服务监听端口 格式:EXPOSE 端口号1 端口号2 端口号3
ENV:指定环境变量 格式:ENV name=变量
ENTRYPOINT:指定镜像默认入口命令 容器启动时作为根命令执行
注:CMD启动容器时指定默认执行的命令:不管是ENTRYPOINT还是CMD都只有最后一条失效,但是如果是ENTRYPOINT,此时再加上一条CMD,则CMD指令将作为根命令的参数
VOLUME:创建一个数据卷并挂载到挂载点 格式:VOLUME ["挂载点绝对路径1","挂载点绝对路径2"...]
USER:指定运行容器时的用户名或UID 格式:USER 用户名
WORIDIR:配置工作目录 格式:WORKDIR 目录
注:指后续RUN,CMD,ENTRYPOINT所执行以用户登录容器时的目录
注:工作目录有时存在多个,如果工作目录都是绝对路径,则代表独立工作目录,如果是相对路径,则基于之前路径
ONBUILD:创建子镜像时指定自动执行的操作指令
STOPSIGNAL:指定退出的信号值
HEALTHCHECK:配置容器启动时如何进行健康检查
SHELL:指定默认的shell类型

操作指令
RUN:创建镜像时运行指令
注:每条RUN指令都会在当前镜像基础上进行新的封装,尽可能将RUN后面的命令&&运行
CMD:启动容器时指定默认执行的命令
ADD:添加内容到镜像 格式:ADD 本地dockerfile文件所在的相对路径下的某个需要拷贝的文件 容器内的一个决定路径或者相对于工作目的相对路径
注:
COPY:复制内容到镜像 格式:COPY 本地dockerfile文件所在的相对路径下的某个需要拷贝的文件 容器内的一个决定路径或者相对于工作目的相对路径
注:

dockerfile示例
vim /dockerfile --dockerfile示例
FROM centos:7 --指向父镜像
MAINTAINER CP --作者或邮箱
RUN yum install -y httpd --执行的命令
ADD /run.sh /run.sh --拷贝物理机的文件到容器中
RUN chmod -R 755 /run.sh \ --赋权,\代表换行
&&touch /var/www/html/index.html \ --创建文件,\代表换行
&&echo "new apache image">/var/www/html/index.html --执行赋权、创建文件、写入操作
WORKDIR /var/www/html --指定工作目录
EXPOSE 80
CMD /run.sh

docker build -f dockerfile -t apche-file:2.0 .

基于容器部署应用
模拟一个apache web的应用
1、直接pull官方的apache镜像直接使用 run一个镜像 apache基础配置由镜像制造者已经完成配置 普通apache是/var/www/html 官方容器apache是/usr/local/apache2/htdocs
2、采用较为干净镜像自己构建应用 centos镜像--run一个容器--进入容器手动安装部署apache

标签:容器,--,CMD,file,格式,镜像,docker,dockerfile
From: https://www.cnblogs.com/NETYZreal/p/18399921

相关文章

  • Ubuntu 安装Docker 运行Nginx
    目录介绍主要功能和特点常用组件安装Docker卸载旧版本Docker(如果有的话)更新apt包索引安装Docker所需的包 添加Docker官方GPG密钥设置Docker仓库安装最新版本Docker验证Docker是否安装成功允许当前用户操作Docker(可选,避免每次使用docker都需要sudo)在Docker......
  • Docker 安装mysql
    1、从docker hub上拉取镜像到本地#dockerpullmysql:5.62.如果是不加版本直接拉取的话,默认的是最新版本 #dockerpullmysql:latest默认拉取最新的版本3.启动:#dockerrun--namemysql-p3306:3306-eMYSQL_ROOT_PASSWORD="设置你的mysql的密码"-dmysql:5.6......
  • 【达梦】Docker安装达梦数据库 dm8
    1.docker启动达梦8镜像命令dockerrun-p5236:5236--namedmdb\-eLD_LIBRARY_PATH=/opt/dmdbms/bin\-ePAGE_SIZE=32\-eEXTENT_SIZE=32\-eLOG_SIZE=2048\-eUNICODE_FLAG=1\-eLENGTH_IN_CHAR=1\-eBLANK_PAD_MODE=1\-v/home/docker/dmdbms/data::/opt......
  • Docker 常用命令
    介绍下Docker常用命令‍帮助启动类命令启动docker:systemctlstartdocker​停止docker:systemctlstopdocker​重启docker:systemctlrestartdocker​查看docker状态:systemctlstatusdocker​开机自启:systemctlenabledocker​查看docker概要信息:dockeri......
  • Docker - 在Rockly Linux 9.4 上安装Docker-CE
    安装Docker-CE修改repo源修改为国内阿里源以提高安装速度sed-e's|^mirrorlist=|#mirrorlist=|g'\-e's|^#baseurl=http://dl.rockylinux.org/$contentdir|baseurl=https://mirrors.aliyun.com/rockylinux|g'\-i.bak\/etc/yum.repos.d/rocky*.repo......
  • docker部署mysql8主从
     一、拉取mysql镜像dockerpullmysql 二、创建容器#主库dockerrun-itd-p3306:3306-eMYSQL_ROOT_PASSWORD=123456--namemysql-mastermysql#从库dockerrun-itd-p3307:3306-eMYSQL_ROOT_PASSWORD=123456--namemysql-slavemysql 三、配置主库[m......
  • BEVFormer复现(使用docker搭建训练环境)
    文章目录一、使用docker创建环境1.1创建容器1.2在容器中安装常用的包1.3安装miniconda1.4安装Pytorch二、环境配置2.1下载源码2.2安装mmcv-full2.3安装mmdet和mmseg2.4从源码安装mmdet3d2.5安装Detectron2和Timm2.6下载预训练模型三、数据准备3.1下载数据集......
  • Docker常用命令
    Docker常用命令1.docker部署Mysql命令解读dockerrun-d\--namemysql\-p3306:3306\-eTZ=Asia/Shanghai\-eMYSQL_ROOT_PASSWORD=123\mysqldockerrun;创建并且运行一个容器,-d让容器在后台运行–namemysql意思是给容器取名字,唯一的-p3306:3......
  • 深入解析 Docker exec 命令
      目录Dockerexec命令详解常用选项示例注意 Docker容器允许你在隔离的环境中运行应用程序,这样可以确保应用运行所需的环境是一致的,无论是在开发、测试还是生产环境中。当需要在Docker容器中执行命令时,通常会用到dockerexec命令。下面是对dockerexec命令......
  • docker命令
    Docker基础命令查看docker运行状态systemctlstatusdocker关闭dockersystemctlstopdocker启动dockersystemctlstartdocker重启dockersystemctlrestartdockerdocker设置随服务启动而自启动systemctlenabledocker查看docker版本号信息dockerversiondo......