首页 > 其他分享 >Docker - DockerFile

Docker - DockerFile

时间:2023-07-10 22:44:29浏览次数:33  
标签:centos dockerfile 构建 镜像 Docker DockerFile docker

 

 

DockerFile的介绍

DockerFile的指令

DockerFile构建过程

 

 

 

 

 

 

DockerFile的介绍

 

狂神:dockerfile是用来构建docker镜像的文件命令参数脚本。

狂神:dockerfile是面向开发的,我们以后要发布项目,做镜像,就需要编写dockerfile文件

狂神:Docker镜像逐渐成为企业交付的标准,必须要掌握!

 

DockerFile:构建文件,定义了一切的步骤,源代码

DockerImage:通过 DockerFile 构建生成的镜像,最终发布和运行的产品。

DockerContainer:容器就是镜像运行起来提供服务的。

 

 

DockerFile的指令

FROM                # 指定基础镜像(一切从这里开始构建)
MAINTAINER          # 指定维护者信息(镜像是谁写的,姓名+邮箱)
RUN                 # 镜像构建的时候需要运行的命令/指定容器启动后要做的事情
ADD                 # COPY文件,会自动解压(步骤:tomcat镜像,这个tomcat压缩包,添加内容)
WORKDIR             # 设置当前工作目录(镜像的工作目录)
VOLUME              # 设置卷,挂载主机目录(挂载的步骤)
EXPOSE              # 指定对外的端口(保留端口配置)
CMD                 # 指定这个容器启动的时候要运行的命令,只有最后一个会生效,可被替代
ENTRYPOINT          # 指定这个容器启动的时候要运行的命令,可以追加命令
ONBUILD             # 当构建一个被继承 DockerFile 这个时候就会运行 ONBUILD的指令。触发指令
COPY                # 类似ADD,将文件拷贝到镜像中
ENV                 # 构建的时候设置环境变量

 

DockerFile构建过程

1、每个保留关键字(指令)都必须是大写字母

2、执行从上到下顺序执行

3、# 表示注释

4、每一个指令都会创建提交一个新的镜像层,并提交

 

 

示例:centos的dockerfile

FROM scratch
MAINTAINER The CentOS Project <[email protected]>
ADD c7-docker.tar.xz /
LABEL name="CentOS Base Image" \
    vendor="CentOS" \
    license="GPLv2" \
    build-date="2016-03-04"

# Volumes for systemd
# VOLUME ["/run", "/tmp"]

# Environment for systemd
# ENV container=docker

# For systemd usage this changes to /usr/sbin/init
# Keeping it as /bin/bash for compatability with previous
CMD ["/bin/bash"]

 

 

 

构建步骤:

1、编写一个dockerfile文件

2、docker build构建成为一个镜像

3、docker run运行镜像

4、docker push发布镜像(DockerHub、阿里云镜像仓库)

 

 

1、创建一个目录dockerfile,编写dockerfile文件:mydockerfile-centos

FROM centos
MAINTAINER harley<[email protected]>

# 设置环境变量MYPATH
ENV MYPATH /usr/local
# 设置工作目录(docker run -it运行镜像之后所在的目录)
WOEKDIR $MYPATH

# 安装vim、net-tools
RUN yum -y install vim
RUN yum -y install net-tools

# 暴露80端口
EXPOSE 80
CMD echo $MYPATH
CMD echo "-----end-----"
CMD /bin/bash

 

2、docker build构建成为一个镜像

docker build -f mydockerfile-centos -t mycentos:0.1 .

mydockerfile-centos:dockerfile文件路径

mycentos:0.1镜像名

 

3、docker run运行镜像:docker run -it mycentos:0.1

 

标签:centos,dockerfile,构建,镜像,Docker,DockerFile,docker
From: https://www.cnblogs.com/harleyblogs/p/17542555.html

相关文章

  • Centos7.9系统docker部署plexServer,打造个人影音服务器
    1.准备工作1.1部署docker安装依赖包yum-yinstallgccgcc-c++yum-utilsdevice-mapper-persistent-datalvm2设置stable镜像仓库yum-config-manager--add-repohttps://download.docker.com/linux/centos/docker-ce.repo或yum-config-manager--add-repohttp://mirrors.al......
  • 解决Docker -v 挂载单文件问题
    问题描述下面命令挂载文件看着没有什么问题吧? dockerrun--namexxxx-p8001:80-v/docker/appsettings.json:/app/appsettings.json-dxxxx:v1.1.0但当我们执行完就会发现文件并没有挂载过来而是给我们创建了一个文件夹 解决方案 官方的建议是挂载文件夹,而不是......
  • 【问题解决】docker login报错 org.freedesktop.Secret.Error.IsLocked: Cannot creat
    问题场景环境docker24.0.2社区版UbuntuServer18.04LTS刚刚执行dockerlogin登录仓库报错:hellxz@bigdata:~/dockerTest$dockerloginharbor.xxx.com.cnUsername:hellxzPassword:**Message:17:26:21.611:Remoteerrorfromsecretservice:org.freedesktop.Se......
  • Windows-docker集成SRS服务器的部署和使用
    一、WindowsDocker安装DockerDesktop官方下载地址: https://docs.docker.com/desktop/install/windows-install/下载windows版本的就可以了。注意:此方法仅适用于Windows10操作系统专业版、企业版、教育版和部分家庭版!安装Hyper-V我们开启Hyper-V。我们安装好DockerforWind......
  • 如何实现java Docker Engine API的具体操作步骤
    使用Java实现DockerEngineAPI引言Docker是一款非常流行的容器化平台,它可以让开发者更方便地构建、交付和运行应用程序。Docker提供了一系列的API,用于管理和操作Docker引擎,通过这些API可以实现容器的创建、启动、停止等操作。本文将向你介绍如何使用Java来实现DockerEngineAPI......
  • Docker CLI docker login和logout 常用命令
    Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的Linux或Windows操作系统的机器上,也可以实现虚拟化。Docker是内核虚拟化,不使用Hypervisor是不完全虚拟化,依赖内核的特性实现资源隔离。本文主要介绍DockerCLI中d......
  • docker with non root priviledge
    RunningDockerContainersasNon-RootUserhttps://www.geeksforgeeks.org/running-docker-containers-as-non-root-user/Bydefault,DockerContainersrunasRootUsers.Now,ifyouarerunningapplicationsinsideDockerContainers,youhaveaccesstoallth......
  • Docker系列---【Docker和宿主机如何传输文件?】
    Docker和宿主机如何传输文件?前提:Docker正在运行,即dockerps命令能看到。宿主机传输文件到dockerdockercp<宿主机文件路径><容器ID或名称>:<容器内目标路径>#例:复制宿主机文件data.txt到容器目录/app/dockercp/host/data.txtmy-container:/app/data.txtdocker传输文......
  • Docker学习路线1:介绍
    Docker是什么?Docker是一个开源平台,通过将应用程序隔离到轻量级、可移植的容器中,自动化应用程序的部署、扩展和管理。容器是独立的可执行单元,封装了运行应用程序所需的所有必要依赖项、库和配置文件,可以在各种环境中稳定地运行。什么是容器?容器是一种轻量级、可移植和隔离的软件......
  • docker 常用记录2023
    IDEA连接虚拟机(Ubuntu)的docker的最好办法(开放2375端口号).我这里用的Ubuntu,1、打开终端输入"sudovim/lib/systemd/system/docker.service"2.在sock后面,添加-Htcp://0.0.0.0:2375如上图所示.按下键盘Esc键输入wq保存退出.3.然后输入systemctldaemon-reload,重新加......