Docker 完全指南

镜像和容器的概念区别

一个镜像只是一个压缩文件,这是一种模板,可以使用镜像实例化多个容器。一个容器表示具体的一个实例,有自己的生命周期,包括启动、停止、删除。

镜像好比操作系统安装文件,容器好比通过此文件安装到机器上并运行起来的操作系统。

docker主要命令汇总

  • docker create imageName:从镜像创建一个容器
  • docker start imageName :从镜像启动一个容器,或重启一个运行的容器
  • docker run imageName : 从镜像启动一个容器
  • docker pause container :挂起,也叫暂停
  • docker stop containerName:停止容器
  • docker kill containerName:停止容器
  • docker restart containerName :重启
  • docker rm containerName:删除
  • docker ps : 查看容器信息
  • docker image ls :查看本地镜像列表

docker run命令

docker run 用来启动一个容器,优先从本地寻找镜像,如果本地找不到,则从远程仓库拉取。

  • -d 后台启动,并返回容器ID。
  • -i: 交互模式运行容器
  • -P : 随机端口映射,容器内部端口映射到主机是随机端口
  • -p : 指定端口映射,格式为 -p 主机端口:容器端口,如果端口一样,可以只写一个
  • -t: 为容器重新分配一个伪输入终端,通常与-i搭配:-it
  • --name : 指定容器名称
  • -v 指定一个目录映射到本地某个文件夹

docker build命令

根据Dockerfile配置文件,创建一个镜像。

默认配置文件为项目目录下的Dockerfile文件。

docker build -t 镜像名称:tag  .

最后的点号(.)表示将本目录下的所有文件打包成一个镜像,一定不能忽略。

目录映射

使用 -v 选项,可以将容器内的目录映射到本地主机,这样,两个目录下的内容始终是同步的。语法如下:

docker run -it -v 宿主机目录:容器目录

编写Dockerfile文件

Dockerfile是构建镜像的配置文件,Docker依据Dockerfile文件逐行执行其中的命令,从而构建我们所需的镜像。

FROM : 获取基础镜像

FROM的作用是获取基础镜像,必须写且必须写在第一行。

FROM的格式为:

FROM image:tag

image是镜像名称,tag是版本标签,一般为数字或latest,如果不写默认为最新版。

COPY:复制本地文件到镜像

COPY 的作用是将本地文件复制到镜像内的虚拟目录。COPY的语法格式为:

COPY src1 src2 ...  dest

src可以是文件或目录。dest是镜像的目标目录。不过,尽量不要将src写成文件夹,因为会复制整个目录的内容,包括文件系统元数据。

文件名支持使用通配符。

COPY命令的示例如下:

COPY  *.html  *.js  *.css  /opt

复制文件还有一个命令是ADD。ADD和COPY都是复制,但由于COPY命令更透明,一般优先使用COPY。

RUN:执行命令

RUN的作用是在构建时执行一条或多条命令,例如通过yum或apt下载软件包。

需要特别指出的是,Dockerfile的每一行命令被执行后都会新增一层镜像。因此,最佳的做法是将RUN执行的多条命令合并在一行写,用&&连接,这样有助于减小最终镜像的体积。

RUN命令示例如下:

RUN echo 1 && echo 2
WORKDIR :设置初始目录

WORKDIR的作用是设置容器启动后的初始目录,类似于cd。此后的命令都将以此为工作目录。

ENV:设置环境变量

ENV的作用是设置环境变量,可以一次设置一个:

ENV key1=value1 key2=value2
CMD :容器启动后的初识命令

从镜像开启容器实例后运行的初始命令,初始命令只能有一个。

CMD命令包括各选项参数用引号包裹,各个部分逗号隔开。例如:

CMD echo "hello"
  • 15
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值