8、dockerfile-构建镜像
类似shell脚本,以自动化方式实现(只能实现一个镜像)
1. Dockerfile 的作用
1)找一个镜像: ubuntu
2)创建一个容器: docker run ubuntu
3)进入容器: docker exec -it 容器 命令
4)操作: 各种应用配置
5)构造新镜像: docker commit
2. 实例:
1)创建dockerfile目录
mkdir /docker/images/nginx -p
cd /dcoekr/images/nginx
cp /etc/apt/sources.list ./
2)创建dockerfile文件
# 基础镜像
FROM ubuntu
# 镜像作者
MAINTAINER mowu 000000@qq.com
# 执行命令
ADD ["sources.list","/etc/apt/sources.list"] # 相当于把宿主机当前目录下sources.list中的内容映射到容器/etc/apt/sources.list文件中
RUN apt-get update && apt-get install nginx -y
# 对外端口
EXPOSE 80
# 容器运行
ENTRYPOINT ["/usr/sbin/nginx","-g","daemon off;"]
3)构建镜像(类型执行shell脚本)
docker build -t nginx:v0.1 .
3. 基础指令:
ADD:
格式:
ADD <src>... <dest>
ADD ["<src>",... "<dest>"]
解释:
将指定的 <src> 文件复制到容器文件系统中的 <dest>
src 指的是宿主机,dest 指的是容器
所有拷贝到 container 中的文件和文件夹权限为 0755,uid 和 gid 为 0
如果文件是可识别的压缩格式,则 docker 会帮忙解压缩
注意:如果源文件是个压缩文件,则 docker 会自动帮解压 到指定的容器目录中
COPY:
格式:
COPY <src>... <dest>
COPY ["<src>",... "<dest>"]
解释:
COPY 指令和 ADD 指令功能和使用方式类似。只是 COPY 指令不会做自动解压工作。
单纯复制文件场景,Docker 推荐使用 COPY
WORKDIR:
格式:
WORKDIR /path/to/workdir (shell 模式)
解释:
切换目录,为后续的 RUN、CMD、ENTRYPOINT 指令配置工作目录。 相当于 cd
可以多次切换(相当于 cd 命令),
也可以使用多个 WORKDIR 指令,后续命令如果参数是相对路径,则会基于之前命令指定的路径。例如
举例:
WORKDIR /a
WORKDIR b
WORKDIR c
RUN pwd
则最终路径为 /a/b/c
浙公网安备 33010602011771号