Docker快速入门:20分钟学会用 Docker部署服务

看到这篇文章的读者肯定希望快速上手 docker,所以这篇文章不会涉及到 docker的底层原理,而是主要讲如何编写 Dockerfile以及如何使用 docker进行项目部署,不管怎么样我们先用起来。不过在这之前我们先简单介绍一下 docker以便确定你是否真的需要使用 docker。

首先我们先了解一下 docker能够帮我们做什么。用一句话概括就是:docker可以将我们的项目打包,然后无障碍地部署到大部分服务器上。docker本身可以运行在大部分系统上,但使用 docker部署的项目必须基于 linux系统。也就是说我们可以在 windows上用 docker部署运行在 Linux上的项目,但是我们没办法在 windows上用 docker部署运行在 windows上的项目,当然在 Linux上也不行。

在手动部署项目的时候我们通常会先把代码上传到服务器、然后安装相关依赖、配置环境、最后启动项目。通常这些过程都需要我们手动敲入命令,每次部署的时候都需要重新敲一遍。而 docker做的工作就是将这些命令记录下来,在部署的时候再逐个执行。

看到这里可能会有人问:这和我写的部署脚本有什么区别?如果 docker仅仅只做这些事的话,那真的是没有啥区别。但是 docker还能够保证每次运行的环境都是一致的,并且与宿主机的环境进行隔离。相信看到这里大家已经能够 get到 docker的妙用了。

1 Dockerfile

前面讲到了 docker通过记录执行的命令来保证每次部署时执行的命令都一致,Dockerfile就是保存这些命令的文件。docker会根据 Dockerfile来构建环境并生成一个镜像,最后通过运行镜像来完成项目部署。

想要快速上手 docker我们需要了解下面这几个命令:FROM, MAINTAINER, ENV, ADD, COPY, EXPOSE, ENTRYPOINT, WORKDIR, RUN, CMD等。下面我们对他们进行逐个介绍。

1.1 FROM

FROM用来指定基础镜像。可以理解为所需要的的操作系统,不过与操作系统不同的是 FROM 指定的镜像通常会配置好我们所需要的的环境。比如下面这行代码就指定了带有 python 环境的镜像,我们可以在构建好的镜像中直接使用 python 而不需要额外安装。

FROM python:3.6

1.2 MAINTAINER

MAINTAINER 指定了 Dockerfile的作者,或者说维护者。可填可不填。

1.3 ENV

ENV用来设置环境变量。示例如下:

ENV PRODUCTION_ENV 1

1.4 ADD

ADD 命令可以用来向镜像中添加我们需要的文件,比如配置文件、代码、资源文件等等。ADD 中所使用的的路径是 Dockerfile所在目录的相对路径,也可以使用 URL,如果目标文件是一个 tar压缩包的话会被自动解压成目录。示例如下,其中第一个参数是要添加的文件,第二个参数是镜像中对应的文件,如果不存在会自动创建:

ADD ./database.ini /root
ADD ./src /root
ADD http://www.baidu.com /root
ADD code.tar /root

1.5 COPY

COPY 的功能和 ADD 相似,不过 COPY 只能复制本地的文件到镜像中,并且不会自动解压 tar压缩包。

1.6 EXPOSE

EXPOSE 声明容器中要使用的端口,仅仅做声明,没有实际作用。运行时使用 -p 容器端口:宿主机端口 指定端口映射。

EXPOSE 80
EXPOSE 80 8080

1.7 ENTRYPOINT

容器启动时执行的命令,并且不会被 docker run 的参数覆盖。如果指定了多个 ENTRYPOINT 只有最后一个会被执行。命令的格式如下:

  • ENTRYPOINT ["可执行文件", "参数1", "参数2"]
  • EN
  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值