Docker快速入门指南| 青训营

93 阅读3分钟

随着青训课程的推进,组队开发大项目也逐步开始进行,话不多说,今天就由我来介绍一下目前最火热的容器技术——docker

bg2018020901.png

什么是docker

简而言之,docker是快速搭建开发环境,替换虚拟机(启动慢,占用资源过多,体积大)的最优解,可以快速跳过环境搭建的过程,直接进入开发阶段。也有效地避免了“代码在我的电脑上好用啊”的尴尬问题。

举个简单的例子,搭建并运行redis环境

//docker:
docker pull redis      //可以与git的操作对应着记
docker run -d --name my-redis -p 6379:6379 redis

docker专有名词

镜像:

镜像是docker里最重要的名词之一,所谓镜像,可以理解为对我当前环境保存成一个图纸,图纸可以复印多份,谁想用直接拿一张(docker pull操作就是拿图纸)。

容器:

拿到图纸,接下来就要根据图纸来做出图纸上的物品供我们使用,而做出来的物品就被称为容器(docker run操作就是自动化将图纸的内容制作出来)

DockerFile:

定制化的创建我们自己的docker镜像,docker类似于git,都有一个仓库,官方或者个人可以把自己写好的docker镜像(代码)上传到仓库中,供其他用户下载使用,dockerfile就是用来创建docker镜像的。

//编写自己的dockerfile
FROM alpine:latest
LABEL owner="tzx"
WORKDIR /app
COPY . .
RUN go build -o myapp
EXPOSE 8080
CMD ["./myapp"]

from字段用来指定基础镜像,这个是必须的,我们始终要站在巨人的肩膀上前进,因此,我们对镜像的编写都不是从0开始的,而是针对一个基础镜像,向里面写入自己的东西,比如这里选择了一个轻量级的 Linux 发行版作为基础。

Label字段用于定义镜像的元数据,可以理解为衣服的标签,用于记录品牌,尺码等,没有也行。

WorkDir字段用于指定容器内的工作目录,设定好后,后续的所有操作都是基于这个目录的。

Copy 用于将本地的文件复制到容器内,这里的含义是把当前目录下的所有内容,复制到容器内的app目录下(workDir),这里要注意一下Add关键字的含义和Copy类似,但不同点在于:1.Add可以指定链接,下载到指定目录中,2.Add如果指定的源文件是压缩文件,在拷贝到容器内的过程中会自动解压缩。

Run是在构建镜像时执行的指令,例如安装软件包、编译代码等。

CMD是在启动容器时执行,且多个CMD只有最后一个生效,同时拥有cmd和entrypoint,cmd里的参数(cmd的参数可以:docker run 镜像name 传入cmd的参数)就是给entrypoint用的。

EXPOSE用于指定容器暴露给外面的端口,注意这个端口不是我们主机上的端口,在启动时要用本机的端口和这个暴露的端口进行映射。

Ending

想了解更多可以点击链接前往菜鸟教程————www.runoob.com/docker/dock…

或者等我更新下一篇😎