Docker 基础概念

Dockerfile

Image 文件,都是通过 Dockerfile 文件生成的。

1.dockerfile 语法

dockerfile文件格式:

FROM node:8.4: 
COPY . /app
WORKDIR /app
RUN npm install --registry=https://registry.npm.taobao.org
EXPOSE 3000
CMD node index.js
  • FROM: 表示引用的image名称以及版本号
  • COPY: 第一个参数表示当前的文件路径,第二参数表示 Image 内的文件路径
  • WORKDIR: 指定 Image 内的工作环境
  • RUN: 在 /app 目录,下载安装项目依赖
  • EXPOSE: 将 3000 端口暴露出来,供外部访问到这个接口
  • CMD: 表示容器启动后,自动启动node服务 node index.js

此时,可能会有疑问: CMDRUN 有什么区别呢?

  • RUN: 是 image 文件的构建阶段执行,执行的结果都会打包到image文件
  • CMD: 是容器启动成功之后执行

Image

Docker 根据 image 文件生成容器的实例。同一份 image 文件可以生成多个同时运行的容器实例。

Docker 用镜像(Image)来管理文件,一个镜像中包含了应用程序和其相关的依赖库。当容器启动之后,会自动将镜像中的文件移动到容器环境中,然后运行。

启动容器指令:

$ docker container run <imaeg-name>

2.创建 image 文件

通过 Dockerfile 文件,就可以构建出 image 文件了。

# 通过 docker image build 指令进行构建
$ docker image build -t <image-name:tag-name> .
# 例如
$ docker image build -t image:0.1 .

上面代码中,-t 参数用来指定 image 的名称,:后表示image 对应的版本号。

Container

Image 文件生成的容器实例,本身也是一个文件,称之为容器文件。也就是说,容器一旦生成,同时存在两个文件: 容器文件image文件

3.生成容器

$ docker container run -p 8000:3000 -it <image-name:versoin> /bin/bash
  • -p: 将容器的3000端口,映射到本机的8000端口
  • -it: 将容器的shell,映射到本机的shell。这样在本机窗口输入指令,就会传入到容器
  • -i: 以交互式运行,阻塞式
  • -t: 分配一个伪终端,后面接参数 /bin/bash,这样就将我们带入到容器中
  • <image-name>:version: image文件名和版本号
  • /bin/bash: 表示容器启动后,内部第一个执行的命令
  • -d: 在后台运行容器,并打印id
  • --mount: 挂载宿主机文件目录到容器目标目录 (用法请参考: https://blog.csdn.net/kikajack/article/details/79474286)

4.访问容器

# 查看容器 id
$ docker ps 
# 查看运行容器的日志
$ docker logs <container_id>
# 进入容器
$ docker exec -it <container_id> /bin/bash

推送远端

$ docker push <image-name:tag-name>

关闭运行的容器

$ docker kill <container_id>

删除容器

$ docker rm <container_name>

CI/CD

参考文章

  • 阮一峰-Docker 入门教程: https://www.ruanyifeng.com/blog/2018/02/docker-tutorial.html
  • Docker Api 文档: https://docs.docker.com/engine/reference/commandline/run
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值