千家信息网

Docker容器的模板怎么创建

发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,本篇内容介绍了"Docker容器的模板怎么创建"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!Dock
千家信息网最后更新 2026年11月03日Docker容器的模板怎么创建

本篇内容介绍了"Docker容器的模板怎么创建"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

Docker 是一款开源容器引擎,主要解决了跨环境不一致的,多环境下安装应用所需环境慢等问题。举几个个例子实际项目中一般有三种环境开发,测试,正式,会存在这些问题测试环境能正常到了正式环境就有问题,通宵好几天还不能解决,每次升级上线都难产。还有就是上线后发现单服务抗不住并发,要大量部署相同环境,也需要花费很多时间。Docker的诞生让彻底把这些问题解决了,让生产工作更高效。

学习Docker需要了解几个概念镜像,容器,仓库,数据卷,镜像构建,容器编排集群等等。

docker基本命令

docker version 查看docker版本

docker info 查看docker详细信息

docker --help 查看docker命令

1 镜像创建容器的模板,底层使用了联合文件系统机制,当从仓库拉取镜像时Docker引擎检验到需要模块就不会再去下载,并在此基础上再下载安装其他层的依赖模块,这种机制也让镜像能快速下载。常用命令拉取,查找,删除,提交。

1.1 docker images 来列出本地主机上的镜像

docker images -a列出本地所有的镜像

docker images -p只显示镜像ID

docker images --digests显示镜像的摘要信息

docker images --no-trunc显示完整的镜像信息

1.2 docker search TERM

docker search tomcat从Docker Hub上查找tomcat镜像

1.3 docker pull [OPTIONS] NAME[:TAG] 可以从某个人的公共仓库(包括自己是私人仓库)拉取,如果没有网络,或者从其他私服获取镜像。

docker pull tomcat从Docker Hub上下载tomcat镜像。等价于:docker pull tomcat:latest

1.4 docker commit -m "提交的描述信息" -a "作者" 容器ID 要创建的目标镜像名称:[标签名]提交容器使之成为一个新的镜像。

如:docker commit -m "新的tomcat" -a "lizq" f9e29e8455a5 mytomcat:1.2

1.5 docker rmi

docker rmi hello-world 从Docker中删除hello-world镜像

docker rmi -f hello-world 从Docker中强制删除hello-world镜像

docker rmi -f hello-world nginx 从Docker中强制删除hello-world镜像和nginx镜像

docker rmi -f $(docker images -aq) 通过docker images -aq查询到的镜像ID来删除所有镜像

2 容器动态的镜像,通过镜像创建的容器,一个镜像可以生成多个容器。常用命令创建,删除,查找,停止。

2.1 docker run [OPTIONS] IMAGE根据镜像新建并启动容器。IMAGE是镜像ID或镜像名称

OPTIONS说明:

 --name="容器新名字":为容器指定一个名称

 -d:后台运行容器,并返回容器ID,也即启动守护式容器

 -i:以交互模式运行容器,通常与-t同时使用

 -t:为容器重新分配一个伪输入终端,通常与-i同时使用

 -P:随机端口映射

 -p:指定端口映射,有以下四种格式:

ip:hostPort:containerPort

ip::containerPort

hostPort:containerPort

containerPort

2.2 docker ps列出当前所有正在运行的容器

docker ps -a列出所有的容器

docker ps -l列出最近创建的容器

docker ps -n 3列出最近创建的3个容器

docker ps -q只显示容器ID

docker ps --no-trunc显示当前所有正在运行的容器完整信息

exit退出并停止容器

Ctrl+p+q只退出容器,不停止容器

2.3 docker start 启动一个已有的容器

2.4 docker restart 容器ID或容器名称重新启动容器

2.5 docker stop 优雅停止正在运行的容器 docker stop $(docker ps -aq) 批量停止

2.6 docker kill 立即停止容器中的主要进程

2.7 docker rm

docker rm 容器ID或容器名称删除容器

docker rm -f 容器ID或容器名称强制删除容器

docker rm $(docker ps -a -q) 删除多个容器

docker logs -f -t --since --tail 容器ID或容器名称查看容器日志

如:docker logs -f -t --since="2018-09-10" --tail=10 f9e29e8455a5

 -f : 查看实时日志

 -t : 查看日志产生的日期

 --since : 此参数指定了输出日志开始日期,即只输出指定日期之后的日志

 --tail=10 : 查看最后的10条日志

2.8 docker top 容器ID或容器名称查看容器内运行的进程

2.9 docker inspect 用于查看镜像和容器的详细信息,默认会列出全部信息,可以通过--format参数来指定输出的模板格式,以便输出特定信息

2.10 docker attach 可以连接到正在运行的容器,观察容器的运行状况,或与容器的主进程进行交互

2.11 docker exec 容器ID进到容器内

2.12 docker cp 容器ID:容器内的文件路径 宿主机路径从容器内拷贝文件到宿主机.

3 仓库分为公有仓库和私有仓库,仓库存放镜像的服务器。

数据卷即宿主机与容器之间存放数据目录的映射,通过-v 宿主机目录:虚拟机目录 。作用是数据持久化,不设置会出现删除容器,重要数据也跟着删除。另一个作用是容器间数据同步。

4 镜像构建通过Docker语法关键字创建dockerFile,再通过命令生成镜像。其实就是通过命令文件生成镜像。

4.1 创建数据卷

dockerrun 命令的时候,使用-v参数标记可以在容器内创建一个数据卷,多次使用-v标记可 以创建多个数据卷

docker run -dp --name testVolume -v /testVolume ubuntu:14.04

使用-v标记也可以指定挂载一个本地的已有目录到容器中去作为数据卷

docker run -dp --name testVolume -v /src/webapp:/opt/testVolume ubuntu:1404

docker挂载数据卷的默认权限是读写,ro指定只读:

docker run -dp --name web -v /src/webapp:/opt/webapp:ro ubuntu:14.04

4.2 数据卷容器

需要在容器之间共享一些持续更新的数据,最简单的方式是使用数据卷容器,数据卷容器其实是一个普通的容器,专门用来提供数据卷供其它容器挂载

创建一个数据卷容器dbdata,并在其中创建一个数据卷挂载到/dbdata:

docker run -ti -v /dbdata --name dbdata ubuntu:14.04

接着我们可以在其他容器中使用-volumes-form来挂载dbdata容器中的数据卷,例如创建db1和db2两个容器,并从dbdata容器挂载数据卷:

docker run -ti --volumes-from dbdata --name db1 ubuntu:14.04

docker run -ti --volumes-from dbdata --name db2 ubuntu:14.04

5 dockerFile语法

5.1 Dockerfile 由一行行命令语句组成,并且支持以 # 开头的注释行。

一般的,Dockerfile 分为四部分:基础镜像信息、维护者信息、镜像操作指令和容器启动时执行指令。

5.2 FROM 格式为 FROM 或FROM :。

第一条指令必须为 FROM 指令。并且,如果在同一个Dockerfile中创建多个镜像时,可以使用多个 FROM 指令(每个镜像一次)。

5.3 MAINTAINER 格式为MAINTAINER 指定维护者信息。

5.4 RUN 格式为 RUN 或 RUN ["executable", "param1", "param2"]。

前者将在 shell 终端中运行命令,即 /bin/sh -c;后者则使用 exec 执行。指定使用其它终端可以通过第二种方式实现,例如 RUN ["/bin/bash", "-c", "echo hello"]。

每条 RUN 指令将在当前镜像基础上执行指定命令,并提交为新的镜像。当命令较长时可以使用 \ 来换行。

5.5 CMD

支持三种格式

CMD ["executable","param1","param2"] 使用 exec 执行,推荐方式;

CMD command param1 param2 在 /bin/sh 中执行,提供给需要交互的应用;

CMD ["param1","param2"] 提供给 ENTRYPOINT 的默认参数;

指定启动容器时执行的命令,每个 Dockerfile 只能有一条 CMD 命令。如果指定了多条命令,只有最后一条会被执行。

如果用户启动容器时候指定了运行的命令,则会覆盖掉 CMD 指定的命令。

5.6 EXPOSE 格式为EXPOSE [...]。

告诉 Docker 服务端容器暴露的端口号,供互联系统使用。在启动容器时需要通过 -P,Docker 主机会自动分配一个端口转发到指定的端口。

5.7 ENV 格式为 ENV 。 指定一个环境变量,会被后续 RUN 指令使用,并在容器运行时保持。

例如

ENV PG_MAJOR 9.3

ENV PG_VERSION 9.3.4

RUN curl -SL http://example.com/postgres-$PG_VERSION.tar.xz | tar -xJC /usr/src/postgress && …

ENV PATH /usr/local/postgres-$PG_MAJOR/bin:$PATH

5.8 ADD 格式为 ADD 。

该命令将复制指定的 到容器中的 。 其中 可以是Dockerfile所在目录的一个相对路径;也可以是一个 URL;还可以是一个 tar 文件(自动解压为目录)。

5.9 COPY 格式为 COPY 。

复制本地主机的 (为 Dockerfile 所在目录的相对路径)到容器中的 。

当使用本地目录为源目录时,推荐使用 COPY。

5.10 ENTRYPOINT

两种格式:

ENTRYPOINT ["executable", "param1", "param2"]

ENTRYPOINT command param1 param2(shell中执行)。

配置容器启动后执行的命令,并且不可被 docker run 提供的参数覆盖。

每个 Dockerfile 中只能有一个 ENTRYPOINT,当指定多个时,只有最后一个起效。

5.11 VOLUME 格式为 VOLUME ["/data"]。

创建一个可以从本地主机或其他容器挂载的挂载点,一般用来存放数据库和需要保持的数据等。

5.12 USER 格式为 USER daemon。

指定运行容器时的用户名或 UID,后续的 RUN 也会使用指定用户。

当服务不需要管理员权限时,可以通过该命令指定运行用户。并且可以在之前创建所需要的用户,例如:RUN groupadd -r postgres && useradd -r -g postgres postgres。要临时获取管理员权限可以使用 gosu,而不推荐 sudo。

5.13 WORKDIR 格式为 WORKDIR /path/to/workdir。

为后续的 RUN、CMD、ENTRYPOINT 指令配置工作目录。

可以使用多个 WORKDIR 指令,后续命令如果参数是相对路径,则会基于之前命令指定的路径。例如

WORKDIR /a

WORKDIR b

WORKDIR c

RUN pwd

则最终路径为 /a/b/c。

5.14 ONBUILD 格式为 ONBUILD [INSTRUCTION]。

配置当所创建的镜像作为其它新创建镜像的基础镜像时,所执行的操作指令。

例如,Dockerfile 使用如下的内容创建了镜像 image-A。

[...]

ONBUILD ADD . /app/src

ONBUILD RUN /usr/local/bin/python-build --dir /app/src

[...]

如果基于 image-A 创建新的镜像时,新的Dockerfile中使用 FROM image-A指定基础镜像时,会自动执行ONBUILD 指令内容,等价于在后面添加了两条指令。

FROM image-A

#Automatically run the following

ADD . /app/src

RUN /usr/local/bin/python-build --dir /app/src

使用 ONBUILD 指令的镜像,推荐在标签中注明,例如 ruby:1.9-onbuild

6 容器编排即有些生产环境有大量容器需要维护,重复操作也很多。通过docker-compose对容器批量操作,高效,安全的维护容器。

"Docker容器的模板怎么创建"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注网站,小编将为大家输出更多高质量的实用文章!

容器 镜像 数据 命令 格式 指令 运行 信息 环境 目录 仓库 名称 多个 路径 参数 日志 基础 文件 用户 输出 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 山东特亿宝互联网科技有限公司 中国互联网科技工作委员会毛军 科技和互联网公司 互联网科技财经 致骋互联网科技 狮子座互联网科技有限公司 广州紫鲸互联网科技 盛创互联网科技有限公司 甘肃拓世互联网科技有限公司 恒生科技互联网指数分析 汉立互联网科技有限公司联系电话 农村开互联网科技讲堂 深圳前海聚择互联网科技有限公司 互联网时代科技改变生活 互联网金融中的现代科技 广西互联网科技孵化中心 互联网科技创新的路径 数字互联网科技有限公司 广东猫王互联网科技有限公司电话 小牛互联网科技有限公司地址 新华互联网科技 互联网科技有限公司经营范围 互联网络科技有限公司 互联网科技英文 成都互联网科技公司 无线互联网科技 万达互联网科技 科技与互联网的利与弊 智腾互联网科技有限公司 云南省自由互联网科技有限公司
0