builder Manage builds 管理构建 config Manage Docker configs 管理配置 container Manage containers 管理容器 context Manage contexts 管理上下文 engine Manage the docker engine 管理引擎 image Manage images 管理镜像 network Manage networks 管理网络 node Manage Swarm nodes 管理节点(集群) plugin Manage plugins 管理插件 secret Manage Docker secrets 管理密钥 service Manage services 管理服务 stack Manage Docker stacks 管理 swarm Manage Swarm 管理集群 system Manage Docker管理系统 trust Manage trust on Docker images 管理信任 volume Manage volumes 管理数据挂载(数据持久化 === 永久保存)
FROM:指定基础镜像(FROM是必备的指令,并且必须为第一条指令)。
RUN: 用来执行命令行命令。其基本格式:
shell格式: RUN <命令> ,输入在bash环境中的命令即可,一个dockerfile允许使用RUN不得超过127层,所以,使用一次RUN, 使用 ‘ \ ’ 换行,使用‘ && ’执行下一条命令。一般使用此种格式;
exec格式: RUN <“可执行文件”, “参数1”, “参数2”>,此种方式像是函数调用中的格式;
COPY: 复制文件。 其基本格式:
格式1:COPY <源路径>…<目标路径>
格式2:COPY [“<源路径1>”,…"<目标路径>"]
ADD: 更高级的复制文件,在COPY的基础上增加了一些功能,如果复制的是压缩包的话,会直接解压,而不需要在使用RUN解压;
CMD:容器启动命令。其基本格式:
shell格式: CMD <命令>
exec格式: CMD [“可执行文件”, “参数1”, “参数2”…]
参数列表格式: CMD [“参数1”, “参数2”…],在指定了ENTRYPOINT指令后,用CMD指定具体的参数
ENTRYPOINT: 入口点。其基本格式分为exec和shell,
ENTRYPOINT的目的和CMD一样,都是在指定容器启动程序及参数。ENTRYPOINT在运行中可以替代,不过比CMD繁琐,需要通过docker run 的参数–entrypoint 来指定。当指定了ENTRYPOINT后,CMD的含义就发生了改变,不在是直接运行其命令,而是将CMD的内容作为参数传递给ENTRYPOINT指令。其执行时就变成了: “”
ENV: 设置环境变量。(都可以使用这里使用的变量)其基本格式:
格式1:ENV
格式2:ENV = =…
ARG: 构建参数。构建参数和ENV的效果一样,都是设置环境变量,所不同的是ARG所构建的环境变量在将来容器运行时是不存在的。其基本格式:
格式1: ARG <参数名> [=<默认值>]
格式2: 该默认值可以在构建命令 docker build 中用 --build-arg <参数名>=<值> 来覆盖
VOLUME: 定义匿名卷。 其基本格式:
格式1: VOLUME ["<路径1>", “<路径2>”…]
格式2: VOLUME <路径>
EXPOSE: 暴露端口。EXPOSE指令是声明运行时容器所提供的端口,在启动容器时不会在因为这个声明而开启端口。 其基本格式:
格式1: EXPOSE <端口1> [<端口2>…]
WORKDIR: 指定工作目录。其基本格式:
格式1: WORKDIR <工作目录路径>
USER: 指定当前用户。USER是帮助你切换到指定用户。 其基本格式:
格式1: USER <用户名>
HEALTCHECK: 健康检查,判断容器的状态是否正常。 其基本格式:
格式1: HEALTCHECK [选项] CMD <命令> :设置检查容器健康状况的命令
格式2: HEALTCHECK NONE: 如果基础镜像有健康检查指令,使用此格式可以屏蔽掉其健康检查指令
如何将nginx和rmcore同时操作?
条件 1、nginx Dockerfile文件 2、rmcore Dockerfile文件 3、services 概念 4、docker-compose.yml配置文件 5、docker-compose工具如何做到?
1、docker-compose安装 1.1、下载地址 sudo curl -L "https://github.com/docker/compose/releases/download/1.24.1/docker-compose-(uname -s)-(uname -m)" -o /usr/local/bin/docker-compose 1.2、增加Compose权限 sudo chmod +x /usr/local/bin/docker-compose 1.3、创建compose快捷方式 sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose 1.4、测试安装是否成功 docker-compose --version 1.5 docker-compose使用命令 build 构建或重新构建容器服务 bundle 从compose文件生成一个Docker包 config 验证并查看compose文件 create 创建容器服务 down 停止并删除容器、网络、映像和卷 events 从容器接收实时事件 exec 在正在运行的容器中执行命令 help 帮助命令 images 镜像列表 kill 杀死容器 logs 查看容器的日志 pause 暂停容器服务 port 输出端口号 ps 容器列表 pull 下载容器服务镜像 push 上传容器服务镜像 restart 容器服务重新开始 rm 删除停止的容器 run 运行一次性命令 scale 设置服务的容器数量 start 开始容器服务 stop 停止容器服务 top 显示正在运行的进程 unpause 暂停容器服务 up 创建并启动容器 version 显示Docker-Compose版本信息 2、docker-compose.yml文件 2.1 yml文件配置 类似:json文件配置 yml文件配置参考地址:https://www.runoob.com/w3cnote/yaml-intro.html 2.1.2 yml文件配置 1、对象 例如 companies:{id: 1,name: company1,price: 200W} 或 companies: id: 1 name: company1 price: 200W 2、数组 例如 companies: [{id: 1,name: company1,price: 200W},{id: 2,name: company2,price: 500W}] 或 companies: - id: 1 name: company1 price: 200W - id: 2 name: company2 price: 500W 3、基本变量类型 int float string boolean date datetime null 2.1 docker-compose.yml文件配置 2.1.1 参考地址 https://docs.docker.com/compose/compose-file/ 2.1.2 核心配置 version 指定compose版本 最好是3.0以上版本 目前最新是3.8版本 services 配置容器[容器列表] nginx: #配置容器标识(唯一编号) image: #配置容器镜像 ports: #配置容器映射端口号[数组] networks: #配置容器网络[数组] networks 网络指定配置 nginx-rmcore: #配置网络名称 external: true #网络自定义 volumes 数据挂载配置 extensions 扩展配置 2.2 docker-compose.yml如何配置nginx和rmcore? 1、创建docker-compose文件 2、配置docker-compose