docker——单体应用容器化

我们如果一个应用部署在多台机器上,一般将代码复制到多台机器上,然后再运行,还有一种方法,将代码和镜像进行整体打包,上传到镜像库,其他机器拉取镜像直接运行,避免了机器环境不同造成的其他问题。
将应用打包到容器中,先熟悉一下dockerfile中的指令
FROM
基于哪个镜像创建的新镜像
RUN
构建镜像时,执行的命令。每使用一次RUN,都会新增一层镜像,避免镜像层数过多,我们将多条命令整合到一起

RUN yum install wget
RUN wget -O redis.tar.gz "http://download.redis.io/releases/redis-5.0.3.tar.gz"
RUN tar -xvf redis.tar.gz

替换成

RUN yum install wget \
    && wget -O redis.tar.gz "http://download.redis.io/releases/redis-5.0.3.tar.gz" \
    && tar -xvf redis.tar.gz

COPYADD
两条指令相似,不过多介绍。指令作用:将本机文件复制到镜像中

COPY . /src

就是将构建镜像的目录下的文件,复制到/src/中
CMD
与RUN相似,执行时间点不同

  • RUN在构建镜像时执行
  • CMD在镜像生成容器时执行

如果存在多个CMD指令,仅最后一个生效

CMD go run main.go

**ENTRYPOINT **
与CMD相似,不会被docker run 指定的参数指令所覆盖

ENTRYPOINT ["go" , "run" , "main.go"]

ENV
设置环境变量。在设置之后可以被使用。

EXPOSE
指定暴露的端口,生成容器时,-p默认映射端口

WORKDIR
工作目录

LABEL

以键值对的形式存在,可以记录镜像作者等。

LABEL maintainer="xiang"

最后生成镜像,注意生成镜像的命令需要在Dockerfile所在目录执行

docker build -t web:latest .
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值