Docker 面试知识点_面试 docker

仓库

  • 存放镜像文件的地方,比如 DockerHub,可以将自己的镜像上传上去
  • 不同镜像可以有不同的标签
  • 主机可以从仓库下载镜像

镜像

  • 创建容器的模板
  • 同一个镜像可以创建多个不同的容器

容器

  • 通过镜像生成的运行实例
  • 不同容器之间是相互隔离,独立运行的
  • 通常一个容器就是一个应用或一个服务,也是我们常说的微服务

Docker 容器有几种在状态?

  • starting 运行状态
  • Exited 退出状态
  • Paused 暂停状态
  • healthy 健康状态
  • unhealthy 非健康状态

Docker 常用命令

docker pull 拉取镜像
docker create 创建容器
docker rm 删除容器
docker ps 列出正在运行的容器列表
docker run 创建容器并运行指定命令
docker start 启动容器
docker stop 停止运行容器
docker restart 重启容器
docker rm 删除容器
docker exec 进入容器内部,容器执行指定命令
docker rmi 删除镜像

docker pull ubuntu  //获取镜像
docker run -it ubuntu /bin/bash  //启动容器
docker start <容器 ID>  //启动一个已停止的容器 
docker stop <容器 ID>  //停止一个容器
docker rm -f <容器 ID>  //删除容器
docker ps  //查看正在运行的容器

runoob@runoob:~#  docker ps
CONTAINER ID        IMAGE                             PORTS                     NAMES
bf08b7f2cd89        training/webapp     ...        0.0.0.0:5000->5000/tcp    wizardly_chandrasekhar
d3d5e39ed9d3        training/webapp     ...        0.0.0.0:32769->5000/tcp   xenodochial_hoov

更多:Docker 命令大全


Dockerfile 指令

Dockerfile 是一个用来构建镜像的文本文件,文本内容包含了一条条构建镜像所需的指令和说明。

FROM 构建镜像基于哪个镜像

MAINTAINER 镜像维护者姓名或邮箱地址

RUN 构建镜像时运行的指令

CMD 容器启动的命令,如果有多个则以最后一个为准,也可以为 ENTRYPOINT 提供参数

VOLUME 指定容器挂载点到宿主机自动生成的目录或其他容器

USER 为RUN、CMD、和 ENTRYPOINT 执行命令指定运行用户

WORKDIR 为 RUN、CMD、ENTRYPOINT、COPY 和 ADD 设置工作目录,就是切换目录

HEALTHCHECH 健康检查

ARG 构建参数,与 ENV 作用一致。不过作用域不一样。ARG 设置的环境变量仅对 Dockerfile 内有效,也就是说只有 docker build 的过程中有效,构建好的镜像内不存在此环境变量。

EXPOSE 声明容器的服务端口(仅仅是声明)

ENV 设置容器环境变量

ADD 拷贝文件或目录到容器中,如果是URL或压缩包便会自动下载或自动解压

COPY 拷贝文件或目录到容器中,跟ADD类似,但不具备自动下载或解压的功能

ENTRYPOINT 运行容器时执行的 shell 命令

FROM cr.d.xm.net/container/xm_centos7:release

MAINTAINER ldz <ldz@xm.com>

RUN mkdir -p /home/work/bin/tmp

# 复制应用程序
COPY devsecops_backend /home/work/bin

# 复制配置文件
COPY config/local.toml /home/work/bin
COPY config/staging.toml /home/work/bin
COPY config/prod.toml /home/work/bin
COPY config/preview.toml /home/work/bin

# 暴露端口
EXPOSE 1416

# 打开工作目录
WORKDIR /home/work/bin

# 执行命令
ENTRYPOINT [""]

Docker 怎么用?

例如,制作一个 centos 镜像
1.编写 Dockerfile,文件命名为 mydockerfile-centos

FROM centos:7.9.2009
MAINTAINER ldz ldz@whu.edu.cn

ENV  MYPATH  /usr/local
WORKDIR $MYPATH

RUN yum -y install vim
RUN yum -y install net-tools

EXPOSE  80
 
CMD echo $MYPATH
CMD echo "-----end-----"
CMD /bin/bash

2.通过命令构建镜像 (最后有个 . )

// docker build -f dockerfile文件名  -t  镜像名:[tag] .
[root@ldz] docker build -f mydockerfile-centos  -t  mycentos:0.1 .

// 成功显示如下
Successfully built f29d77d79136
Successfully tagged mycentos:0.1

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值