当前位置: 首页 > news >正文

Docker 高级管理--Dockerfile镜像制作

二:Dockerfile 语法基础

1:基础指令
(1)FROM
指定基础镜像,所有的 Dockerfile 都必须以 FROM 指令开头,它定义了新镜像基于哪个基础镜像构建。

FRoM ubuntu:20.04

(2)MAINTAINER(已奔用,推荐使用LABEL)
用于指定镜像的维护者信息。不过在较新的Docker版本中,推荐使用 LABEL 指今来替代

MAINTAINER John Doe <johndoe@example.com>

(3)LABEL

为镜像添加元数据,这些元数据可以是任何信息,如作者、版本、描述等,方便对镜像进行管理和识别。

LABEL version="1.0" description="This is a sample image"
maintainer="John'

2:环境设置指令
(1)ENV
设置环境变量,这些环境变量会在容器运行时持续存在,并且可以被容器内的应用程序使用。

ENV MYSOL_ROOT_PASSWORD=password

(2)ARG
定义在构建镜像时可以传递的参数,这些参数只在镜像构建过程中有效。

ARG VERSION=1.0

3:文件操作指令
(1)CPOY
将本地文件或目录复制到镜像中。

COPY app.py /app/

(2)ADD
与 COPY 类似,也是将文件或目录复制到镜像中,但 ADD 还支持从远程 URL 下载文件和自动解压玉缩文件。

ADD http://example.com/file.tar.gz /app/

3)WORKDIR
设置工作目录,后续的 RUN、CMD、ENTRYPOINT、COPY 和 ADD 等指令都会在这个工作目录下执行。

WORKDIR /app

4:执行命令指令
(1)RUN
在构建镜像的过程中执行命令,常用于安装软件包、配置环境等操作。

RUN apt-get update && apt-get install -y python3

(2)CMD
为容器提供默认的执行命令。一个 Dockerfile 中只能有一个 CMD 指令,如果有多个,只有最后个会生效。当使用 docker run 启动容器时,如果没有指定其他命令,就会执行 CMD 指定的命令。

CMD ["python3","app.py"]

3)ENTRYPOINT
配置容器启动时执行的命令,与 CMD 类似,但 ENTRYPOINT 的命令不会被 docker run 后面的命令覆盖,而是将 docker run 后面的命令作为参数传递给 ENTRYPOINT 命令。

ENTRYPOINT ["python3"]
CMD ["app.py"]

5:网络和暴露端口指令
(1)EXPOSE
声明容器在运行时会监听的端口,但这只是一个声明,并不会实际进行端口映射。在使用 dockerrun 启动容器时,需要使用-p或-P选项进行端口映射。

EXPOSE 8080

6:容器挂载指令
(1)VOLUME
创建一个可以从本地主机或其他容器挂载的挂载点,用于持久化数据或共享数据

VOLUME ["/app/data"]

三:Dockerfile 系例实施
1:案例 1--构建 nginx 容器
(1)拉取 centos 镜像

docker pull centos:7

(2)创建 dockerfile 工作目录

(3)创建 dockerfile

(4)编写nginx 启动脚本

(5)用dockerfile 创建镜像

(6)启动容器

(7)访问nginx 网站

http://192.168.10.101:8083

2:案例 2--构建 Tomcat 容器
(1)创建工作目录

(2)创建 dockerfile 文件

(3)创建启动脚本

(4)用dockerfile 生成镜像

(5)运行容器

docker run -d -i -p 8080:8080 --name tomcat01 mytomcat

(6)访问 tomcat 网站

3:案例 3--构建 mysq1 容器
(1)创建工作目录

(2)创建 dockerfile 文件

(3)编写mysq1 初始化脚本

(4)生成镜像

docker bulid -t mysql .

(5)创建容器

docker run -id -p 3306:3306 mysql
yum -y install mysql
mysql -uroot -p123456 -h 192.168.10.101 -p 3306

4:案例 4--构建 php
(1)创建工作目录

mkdir /opt/php
cd /opt/php

(2)创建dockerfile(yum 安装安装)

vim dockerfile

(3)生成镜像

docker build -t myphp .

(4)启动容器

docker run -d -i -p 9000:9000 myphp /bin/bash

http://www.dtcms.com/a/272787.html

相关文章:

  • Context Engineering Framework 系统详细介绍
  • 链表算法之【合并两个有序链表】
  • 牛客笔试题 除2!
  • 读取按键的四种方式
  • IMU误差模型
  • 显卡GPU的架构和工作原理
  • 输入框过滤选项列表,el-checkbox-group单选
  • JDK 1.7 vs JDK 1.8
  • 为什么域名加端口访问需要放行端口?
  • 【算法训练营Day11】二叉树part1
  • c语言初阶 指针
  • CH9121T电路及配置详解
  • 【算法笔记 day three】滑动窗口(其他类型)
  • Spring Security 技术原理与实战全景详解
  • 【OD机试题解法笔记】根据IP查找城市
  • 观众信息设置与统计(视频高级分析与统计功能)
  • 身份认证缺陷
  • Gulp实现功能及插件总结
  • java并发包下CountDownLatch、Semaphore用法
  • 【牛客刷题】活动安排
  • i.mx8 网络速率测试
  • Transformer:自注意力驱动的神经网络革命引擎
  • 网络综合实验
  • Linux中gdb使用
  • Spring- @Autowired和@Resource 的区别
  • 【网络】Linux 内核优化实战 - net.ipv4.tcp_keepalive_probes
  • linux系统---部署应用
  • day049-初识Ansible与常用模块
  • 如何远程访问在WSL运行的Jupyter Notebook
  • 如何安装python以及jupyter notebook