dockerfile二进制mysql_Dockerfile源码分离部署LNMP(Centos7)

Dockerfile常用指令:

1、FROM:构建镜像基于哪个镜像

例如:FROM centos

2、MAINTAINER:镜像维护者姓名或邮箱地址

例如:MAINTAINER Sun qiu ming

3、RUN:构建镜像时运行的shell命令

例如:

RUN [ "yum","install","httpd"]

RUN yum -y install httpd

4、CMD:运行容器时执行的shell命令

例如:

CMD ["/bin/bash"]

5、EXPOSE声明容器的服务端口

例如:EXPOSE 80 443

EXPOSE 声明端口

格式为 EXPOSE [...]。

EXPOSE 指令是声明运行时容器提供服务端口,这只是一个声明,在运行时并不会因为这个声明应用就会开启这个端口的服务。在 Dockerfile 中写入这样的声明有两个好处,一个是帮助镜像使用者理解这个镜像服务的守护端口,以方便配置映射;另一个用处则是在运行时使用随机端口映射时,也就是 docker run -P 时,会自动随机映射 EXPOSE 的端口。

要将 EXPOSE 和在运行时使用 -p : 区分开来。-p,是映射宿主端口和容器端口,换句话说,就是将容器的对应端口服务公开给外界访问,而 EXPOSE 仅仅是声明容器打算使用什么端口而已,并不会自动在宿主进行端口映射。

6、ENV :设置容器环境变量

例如:ENV MYSQL_ROOT_PASSWORD 123.com

7、ADD:拷贝文件或目录到镜像,如果是URL或压缩包会自动下载或自动解压

ADD ...

ADD ["源文件"..."目的目录"]

例如:

ADD https://xxx.com/html.tar.gz /var/www/html

ADD html.tar.gz /var/www/html

8、COPY :拷贝文件或目录到镜像容器内,跟ADD类似,但不具备自动下载或解压功能

例如:COPY ./start.sh /start.sh

9、ENTRYPOINT:运行容器是执行的shell命令

例如:

ENTRYPOINT ["/bin/bash","-c","/start.sh"]

ENTRYPOINT /bin/bash -c '/start.sh'

10、VOLUME:指定容器挂载点到宿主机自动生成的目录或其他容器

例如:

VOLUME ["/var/lib/mysql"]

11、USER :为RUN、CMD、和ENTRYPOINT执行命令指定运行用户

USER [:] OR USER [:]

例如:

USER sunpengjun

12、WORKDIR:为RUN、CMD、ENTRYPOINT、COPY和ADD设置工作目录

例如:

WORKDIR /data

13、HEALTHCHECK:健康检查

14、ARG:构建时指定一些参数

例如:

FROM centos

ARG user

USER $user

注意

1、RUN在building时运行,可以写多条

2、CMD和ENTRYPOINT在运行container时运行,只能写一条,如果写多条,最后一条生效。

3、CMD在run时可以被COMMAND覆盖,ENTRYPOINT不会被COMMAND覆盖,但可以指定--entrypoint覆盖。

Docker缓存特性:

如果在相同层中,需要用到之前缓存过的镜像,就无需重新下载。但如果此镜像层上层发生变化,即使是在相同层,也用不了缓存。如果非要不使用缓存可以加上--no-cache参数。

Dockerfile 中每一个指令都会创建一个镜像层,上层是依赖于下层的。无论什么时候,只要某一层发生变化,其上面所有层的缓存都会失效。

也就是说,如果我们改变 Dockerfile 指令的执行顺序,或者修改或添加指令,都会使缓存失效。

Dockerfile的优势:

通过dockerfile制作镜像,能够很明显的看到镜像每一层的操作,安全性高,并且可移植操作性强。

Dockerfile分离部署LNMP(二进制安装):

提示:需要事先将nginx,php,mysql所需的安装包下载到本地(结构目录如下)。

73cf623e0901f165d2fffb9a75483dfc.png

准备部署工作:

1,解决容器固定ip地址问题:

保证容器重启后,ip地址不会改变,且方便管理和操作。

1)自定义网络:

[root@sqm-docker01 nginx]# docker network create -d bridge --subnet 172.16.10.0/24 --gateway 172.16.10.1 mynet1

2,创建挂载目录:

网页根目录:/wwwroot

配置文件目录:/

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值