docker--Dockerfile的编写

通过Dockerfile 构建自己的镜像

1. 基本语法

每行一个指令,区分大小写。
指令一般以关键字开头,后接参数。

2. 常用指令

FROM	#指定镜像
MAINTAINER	#维护者的信息
RUN		#在临时容器里执行的操作系统命令
ADD file /path/		#把物理机file 拷贝至 镜像的指定目录 /path  ADD 与 COPY 类似 但提供了更多高级功能 如解压归档文件和从 URL 下载内容
COPY file /path/ 	#把物理机file 复制到镜像的指定目录
ENV		#指定变量
USER	#指定容器内部以那个用户运行进程   指定前需要先创建用户
VOLUME	#指定数据卷
EXPOSE	#指定镜像容器所使用的端口,
CMD		#指定镜像创建出来的容器运行什么进程

ADD 与 COPY 的对比

功能ADDCOPY
复制本地文件或目录
自动解压归档文件
支持从 URL 下载文件❌(需要用 RUN curl/wget 实现)
操作更明确和简单

建议:
如果只是复制文件,推荐使用 COPY,因为它语义更明确,功能更简洁。
如果需要解压归档文件或下载外部资源,可使用 ADD

实例

自定义一个镜像

[root@master ~]# cat Dockerfile
FROM centos:latest
MAINTAINER zhen
RUN yum install -y vim
CMD ["/bin/bash"]

#使用 docker build 构建镜像
#语法如下:
docker build -t <新的镜像名>  -f <指定Dockerfile文件名> <构建的目录>
[root@master ~]# docker build -t centos:7.9 -f Dockerfile .
#这里构建的新镜像名 为centos:7.9 -f 指定Dockerfile文件 . 表示当前目录

#配置内部的yum源的方法
网络源可以直接将repo文件传输至 容器内的 /etc/yum.repos.d/ 下
[root@master ~]# tar zcf repo.tar.gz /etc/yum.repos.d/* 

#然后 Dockerfile 里为
RUN rm -rf /etcyum.repos.d/*
ADD repo.tar.gz /etc/yum.repos.d/

#本地源 配置
还有就是先将本地源传输至容器内部
然后写 本地源文件 repo 在传输至容器里
如下:
RUN rm -rf /etcyum.repos.d/*
COPY yum /root/
COPY local.repo /etc/yum.repos.d/

baseurl=file:///root/yum


#USER 的使用
[root@master ~]# cat Dockerfile
FROM centos:latest
MAINTAINER zhen
RUN useradd zhen  #先创建
USER zhen		#在进行指定
CMD ["/bin/bash"]

# ENV 指定变量 
[root@master ~]# cat Dockerfile
FROM centos:latest
MAINTAINER zhen
ENV myenv=/aa  #指定变量
CMD ["/bin/bash"]

# 数据卷  使用此镜像创建出来的容器会创建一个目录 /data 绑定物理机随机一个目录
[root@master ~]# cat Dockerfile
FROM centos:latest
MAINTAINER zhen
VOLUME ["/data"]    #如果是多个为: ["/data1","/data2"]
CMD ["/bin/bash"]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

江上清风至

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值