【个人-感悟--来自PPT】dockerFile入门介绍

1、

Dockerfile
Dockerfile简介
Dockerfile指令及用法
基于Dockerfile构建docker镜像
Storage镜像实例

2、Dockerfile简介

Dockerfile是由一些列命令和参数构成的脚本,这些命令应用于基础镜像并最终创建一个新的镜像。
Dockerfile 分为四部分:
基础镜像信息
维护者信息
镜像操作指令
容器启动执行指令

3、Dockerfile指令及用法

Dockerfile 有以下13个指令选项:

FROM
MAINTAINER
RUN
CMD
EXPOSE
ADD
ENV
COPY
ENTRYPOINT
VOLUME
USER
WORKDIR
ONBUILD

4、Dockerfile指令及用法

FROM
用法: FROM
说明:
FROM指定构建镜像的基础源镜像。
FROM必须是 Dockerfile 中非注释行的第一个指令。
FROM可以在一个 Dockerfile 中出现多次。
如果FROM语句没有指定镜像标签,则默认使用latest标签。

RUN
用法: RUN [command]
说明:
接受命令作为参数。
当前镜像基础上执行指定命令,并提交为新的镜像。
RUN后接多条命令以减少镜像分层。

ENV
用法: ENV # 只能设置一个变量 ENV = … # 允许一次设置多个变量
说明:
为镜像设置环境变量,变量在Dockerfile后续的指令中保持有效。
环境变量在容器运行时也保持有效。

ADD
用法: ADD [source directory or URL] [destination directory]
说明:
如果是本地文件,则该文件必须位于上下文中。
如果是目录,在目录中的所有内容都会复制到容器中。
如果是本地的一个tar压缩文件,则复制时会将其解压。
如果不存在,则会在容器中创建,包括其中包含的目录
COPY
用法: COPY [source directory] [destination directory]
说明:
不能指定远程文件 URLS 。
如果是一个tar压缩文件,则复制时不会将其解压。

CMD
用法 CMD [“executable”,“param1”,“param2”]
CMD [“param1”,“param2”]
CMD command param1 param2
说明:
第一种用法:运行一个可执行的文件并提供参数。
第二种用法:为ENTRYPOINT指定参数。
第三种用法:是以”/bin/sh -c”的方法执行的命令。

例:CMD [“/bin/echo”, “this is a test container ”]
docker run test  this is a echo test并退出
docker run -it test /bin/bash  运行一个bash交互界面
ENTRYPOINT
用法: ENTRYPOINT [“executable”,“param1”,“param2”]
ENTRYPOINT command param1 param2
说明:
每个 Dockerfile 中只能有一个ENTRYPOINT,当指定多个时,只有最后一个生效。
不可被 docker run 提供的参数覆盖。
可配合docker run 参数或者CMD参数,灵活添加容器启动参数(仅exec模式支持)。

例: FROM ubuntu:14.04
ENTRYPOINT [“echo", “hello"]
CMD [“world”]
Docker run test 
FROM ubuntu:14.04
ENTRYPOINT [“echo", “hello"]
Docker run test world
Volume
用法: VOLUME ["/data"]
说明:
创建一个可以从本地主机或其他容器挂载的挂载点。
无法指定主机上对应的目录,是自动生成的。

例: FROM ubuntu
VOLUME ["/data1","/data2"]

 docker run --name  dbdata dbimage  echo "data container"
 docker run --name  test1 -it --volumes-from  dbdata  ubuntu  /bin/bash 

ONBUILD
用法:ONBUILD [INSTRUCTION]
说明:配置当前创建的镜像作为新镜像的基础镜像时,所执行的操作指令。

例: […]
ONBUILD ADD conf.json /etc/conf/
ONBUILD RUN apt-get update
[…]

5、基于Dockerfile构建docker镜像

镜像的构建命令:docker build -t="${imagename}" .
注意点:
避免安装不必要的软件包
每个容器只跑一个进程
镜像合理分层
创建缓存
ADD和COPY会校验文件
RUN apt-get -y update命令只检查命令是否匹配

6、Storage镜像制作

基础镜像: Alpine:3.5
安装软件: nginx php7 nfs-utils expect
openssh sudo gzip bash
启动命令: run.sh

发布了342 篇原创文章 · 获赞 2 · 访问量 2104

猜你喜欢

转载自blog.csdn.net/m0_37681589/article/details/103683204