贾鸿硕的博客

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

一、安装与配置

安装:

# Centos7
yum install docker

启动 & 设为开机启动:

systemctl start docker.service
systemctl enable docker.service

镜像源配置:

# vi /etc/docker/daemon.json
{
  "registry-mirrors": [
    "https://docker.mirrors.ustc.edu.cn",
    "https://registry.docker-cn.com"
  ]
}

二、常用命令

pull

  • docker pull <image-name>:拉取镜像
  • docker pull <image-name>:<version>:指定版本
  • docker pull <docker-hub-path>/<image-name>:拉取私有镜像
  • docker pull -a <image-name>:拉取所有可用标签版本

images

  • docker images:列出所有镜像
  • docker images <image-name>:列出指定名称的镜像

rmi

  • docker rmi <image-name>(:<version>):按名称删除镜像
  • docker rmi <image-id>:按id删除镜像
  • -f:强制删除
  • -a:删除所有

ps

  • docker ps:查看正在运行的容器
  • docker ps -a:查看所有

容器状态:

  • docker start <container-name>/<container-id>:启动容器
  • docker stop <container-name>/<container-id>:停止容器
  • docker restart <container-name>/<container-id>:重启容器
  • docker attach <container-name>/<container-id>:进入已启动容器

rm

  • docker rm <container-name>/<container-id>:删除单个容器
  • -f:强制删除

run:

  • docker run <image-name> <command>:启动容器镜像并指定指令
  • -d:后台启动
  • --name <container-name>:为容器指定一个名称
  • -p <host-port>:<container-port>:端口映射
  • -v <host-path>:<container-path>:文件或目录挂载
  • -e <key=value>:设置环境变量

build

  • git build [Options] <path>:构建镜像
  • -t <image-name>:<tag>:指定名称和标签
  • -f <dockerfile> / --file <dockerfile>:指定Dockerfile的路径
  • --no-cache:禁用缓存,强制重新构建镜像

exec:

  • docker exec <container-name> <command>:在容器内部执行命令,无论容器是否运行

三、Dockerfile

FROM:基础镜像信息

  • 第一行
  • FROM <image>
  • FROM <image>:<tag>

RUN:构建中执行

  • RUN <command>
  • RUN ["executable", "param1", "param2"]

COPY:复制文件

  • COPY <src> <target>
  • COPY ["src1", "src2", ..., "target"]
    • 目标路径可以是容器内的绝对路径,也可以是相对于工作目录(WORKDIR)的相对路径

ADD:更高级的文件复制

  • src可以为URL

ENV:环境变量

  • ENV <key> <value>
  • ENV <key1>=<value1> <key2>=<value2>

EXPOSE:暴露端口

  • EXPOSE <port> [<port> ...]

VOLUME:创建挂载点

  • VOLUME ["/data"]
  • 声明而非创建数据卷,要使用需要在启动时加-v挂载

WORKDIR:指定工作目录

  • WORKDIR
  • 设置后,其后Dockerfile命令都在该工作目录下执行

USER:指定运行镜像所使用的用户

  • USER name
  • USER <user>:<group>

CMD:容器启动时执行

  • CMD ["executable", "param1", "param2"]
  • CMD ["param1", "param2"]:与ENTRYPOINT组合使用
  • CMD <command> <param1> <param2>

ENTRYPOINT:设置创建容器时的默认程序

  • ENTRYPOINT ["executable", "param1", "param2"]
  • ENTRYPOINT
  • docker run运行时的参数会被传给ENTRYPOINT,覆盖CMD命令指定的参数

LABEL:镜像元数据

  • LABEL <key>=<value> <key>=<value>
  • 可通过docker inspect <image-name>查看

ARG:指定构建运行时的变量

  • ARG <name>(=<default-value>)
  • 构建时通过--build-arg指定变量值

ONBUILD:设置镜像触发器

  • ONBUILD <Dockerfile-CMD> <ARG>
  • 作为其他镜像的基础镜像时触发

STOPSIGNAL:停止容器所要发送的系统调用信号

SHELL:设置执行命令所使用的默认shell类型

MAINTAINER:维护者信息

  • MAINTAINER <name> <email>
posted on 2023-05-29 17:28  jhsss  阅读(6)  评论(0编辑  收藏  举报