文档章节

Dockerfile 文件的编写

lemos
 lemos
发布于 2017/07/15 17:55
字数 413
阅读 24
收藏 0

基础篇    提高篇

只是展示各个命令的用法

FROM hub.c.163.com/library/mysql:latest

LABEL maintainer="jakub.skalecki@example.com"

USER daemon

ENV MYSQL_ROOT_PASSWORD=daemon \
    MYSQL_DATABASE=mydb

WORKDIR /home/spider

COPY . .

# 挂载主机目录到容器中
VOLUME ["/etc/mysql", "/var/lib/mysql"]

# 声明多个端口
EXPOSE 5000 8080

# 固化在镜像中,镜像创建完毕之后不再执行
RUN apt-get update && \
    apt-get install -y nodejs && \
    cd /app && \
    npm install

HEALTHCHECK CMD curl --fail http://localhost:$APP_PORT || exit 1

# 使用 entrypoint 设置不会变化的命令
ENTRYPOINT ["docker","run","-i","-t","--rm","-p","80:80"]

# cmd 来设置可能会改变的命令
CMD ["start"]

 

Dockerfile 示例

通过容器编译并运行当前目录下的 golang程序(依赖需要先下载到当前目录 vendor中)

FROM hub.c.163.com/library/golang:latest

COPY . /go/src/app

WORKDIR /go/src/app

CMD ["go","build","-v"]

使用 Docker构建镜像,在此镜像上运行一个容器,使用该容器运行 golang程序

FROM hub.c.163.com/library/golang:latest

WORKDIR /go/src/app

COPY . .

EXPOSE 5000 8080

ENV GIN_MODE=release

RUN go-wrapper download && \
    go-wrapper install

CMD ["app", "run"]

 --net=host 共享主机端口。运行之后突然停止,可能是主机端口已被占用,需要关闭主机端口。

多阶段构建(multi-stage-build

用于整合多个镜像文件

# First stage: complete build environment
FROM maven:3.5.0-jdk-8-alpine AS builder
# add pom.xml and source code
ADD ./pom.xml pom.xml
ADD ./src src/
# package jar
RUN mvn clean package

# Second stage: minimal runtime environment
From openjdk:8-jre-alpine
# copy jar from the first stage
COPY --from=builder target/msb-1.0.jar msb.jar
# run jar
CMD ["java", "-jar", "msb.jar"]

关于 EXPOSE 声明端口的说明 

关于VOLUME 挂载的说明

© 著作权归作者所有

下一篇: Bulma 概览
lemos
粉丝 9
博文 199
码字总数 95671
作品 0
芜湖
后端工程师
私信 提问
九步构建自己的hello world Docker镜像

构建 Docker 镜像 Docker镜像构建是通过 Dockerfile来构建的,里面运行的程序是可以自定的,从编写程序到安装Docker镜像,可以一气呵成。接下来我们就通过九步实现一个自定义的镜像的制作、构...

上官瑾文
2018/04/17
0
0
docker 自动构建,基于Dockerfile文件

原文地址:http://kekefund.com/2017/03/06/docker-dockerfile-generated/ 1,Dockerfile的编写 在centos中创建一个目录:/mydata/data/dockertest/,新建Dockerfile文件 vim Dockerfile 编写......

cbbing
2017/06/08
0
0
利用Docker部署mongodb集群--分片与副本集

环境 Docker version 1.6.2 mongodb 3.0.4 第一步 编写Dockerfile并生成镜像 主意包含两个Dockerfile镜像,一个mongod的,一个mongos(在集群中负责路由) 编写Mongod的Dockerfile: FROM ub...

robin-yao
2015/06/22
6.3K
7
Docker:使用Dockerfile创建支持SSH服务的镜像

1、创建工作目录 # mkdir sshd_ubuntu # ls 在其中,创建Dockerfile和run.sh文件 # cd sshd_ubuntu/ # touch Dockerfile run.sh # ls 2、 编写run.sh脚本和authorized_keys文件 # vi run.sh ......

Aiden郭祥跃
2018/11/26
0
0
快速入门Docker---用Docker搭建Python的开发环境

首先从 docker hub registry 找到需要的镜像的 Command docker pull python:3.5docker ps #查看镜像 在文件根目录新建目录 file,在 file目录中新建文件 pyth.py #!/usr/bin/python print("H......

u013355826
2018/04/16
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Spring Boot + Mybatis-Plus 集成与使用(二)

前言: 本章节介绍MyBatis-Puls的CRUD使用。在开始之前,先简单讲解下上章节关于Spring Boot是如何自动配置MyBatis-Plus。 一、自动配置 当Spring Boot应用从主方法main()启动后,首先加载S...

伴学编程
昨天
7
0
用最通俗的方法讲spring [一] ──── AOP

@[TOC](用最通俗的方法讲spring [一] ──── AOP) 写这个系列的目的(可以跳过不看) 自己写这个系列的目的,是因为自己是个比较笨的人,我曾一度怀疑自己的智商不适合干编程这个行业.因为在我...

小贼贼子
昨天
7
0
Flutter系列之在 macOS 上安装和配置 Flutter 开发环境

本文为Flutter开发环境在macOS下安装全过程: 一、系统配置要求 想要安装并运行 Flutter,你的开发环境需要最低满足以下要求: 操作系统:macOS(64位) 磁盘空间:700 MB(不包含 IDE 或其余...

過愙
昨天
6
0
OSChina 周六乱弹 —— 早上儿子问我他是怎么来的

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @凉小生 :#今日歌曲推荐# 少点戾气,愿你和这个世界温柔以待。中岛美嘉的单曲《僕が死のうと思ったのは (曾经我也想过一了百了)》 《僕が死の...

小小编辑
昨天
2.7K
16
Excption与Error包结构,OOM 你遇到过哪些情况,SOF 你遇到过哪些情况

Throwable 是 Java 中所有错误与异常的超类,Throwable 包含两个子类,Error 与 Exception 。用于指示发生了异常情况。 Java 抛出的 Throwable 可以分成三种类型。 被检查异常(checked Exc...

Garphy
昨天
42
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部