爱编码的Farmer

  • 主页
  • 编程开发
  • 运营维护
  • 随心笔记
  • 留言页面
  • 打赏
爱编码的Farmer
我是Farmer,我为自己代言
  1. 首页
  2. 编程开发
  3. 教程笔记
  4. 正文

Dockerfile和docker-compose

2018年12月25日 4979点热度 2人点赞 0条评论

Dockerfile

使用Dockerfile构建自己的镜像,这里记录一些常用的命令,这里拿我尝试做的一个nginx镜像来记录
https://github.com/huanl-php/docker-nginx/blob/master/Dockerfile

FROM alpine:latest

选择基础的镜像,这里的话我用的是alpine,后面的latest表示最新的版本,alpine是一个非常小的linux发行版,如果你对镜像大小很敏感的话推荐使用这个镜像作为基础镜像

LABEL

这一行表示这个Dockerfile的作者

ENV

环境变量,当你没配置的时候将使用这些作为默认值

EXPOSE

声明要暴露的端口,但是并不会直接帮你暴露出去,至少告诉docker你会暴露那些

RUN

运行命令,这里用了&和\表示连接命令和换行

COPY

COPY 顾名思义的复制文件 从本地复制到容器里面去

CMD

当你容器启动的时候,将运行的命令,除此之外还有ENTRYPOINT

暂时就先记录这些,以后用到了再继续记录

另外提一下

使用alpine这个的时候有下面这个方法,安装包,卸载包,但是当时我构建我的nginx项目的时候del之后提示一些包不存在,时间久远我也不记得当时的操作了

apk add --no-cache --virtual .build-deps gcc
apk del .build-deps

然后我尝试了这种方法,只删除构建时需要的包,之后我发现我的镜像更小了= =不知道这样做会有什么不好。。。。

apk add --no-cache gcc
apk del gcc

docker-compose.xml

compose用于容器快速部署,我这里用我的云签到的项目来
https://github.com/CodFrm/cas/blob/master/docker-compose.yml
文档

version

要求版本,不多说了

services

容器服务

db和web

都只是一个名字而已

image

容器的镜像名字

environment

环境变量

networks

所属网络环境

ports

暴露端口 外部端口:容器内部端口

depends_on

依赖,会先构建所依赖的容器

根部的 networks

声明网络,没有将会创建

cas_network

网络的名字

driver

网络驱动类型,我这里是bridge桥接

最近用到的

build

build Dockerfile路径,直接通过dockerfile来构建了,不用image

volumes

和本地路径绑定 本地路径:容器内部路径

external_links

将外部容器加入网络 链接的容器名字:本容器内叫的名字

external

networks下的一个配置项,允许外部访问 external:true

先记录到这里,解释是自己的简单理解>_<

标签: 暂无
最后更新:2018年12月25日

Farmer

不敢说什么

点赞
< 上一篇
下一篇 >

文章评论

取消回复

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据。

COPYRIGHT © 2021 icodef.com. ALL RIGHTS RESERVED.

Theme Kratos Made By Seaton Jiang

湘ICP备19008073号