Docker从docker下载下来的叫镜像images;
使用docker run运行起来的镜像叫容器containers
镜像|容器|仓库镜像就是集装箱,仓库就是超级码头,容器就是我们运行程序的地方.
docker运行程序的过程就是去仓库把镜像拉到本地,然后用一条命令把镜像运行起来变成容器
容器的实质是进程,运行在一个隔离的环境
镜像 ID 则是镜像的唯一标识,一个镜像可以对应多个标签
Docker 镜像是多层(分层)存储结构,并且可以继承、复用,因此不同镜像可能会因为使用相同的基础镜像,从而拥有共同的层。镜像的多层存储,每一层是在前一层的基础上进行的修改;而容器同样也是多层存储,是在以镜像为基础层,在其基础上加一层作为容器运行时的存储层。
docker system df 命令来查看镜像、容器、数据卷所占用的空间。
docker image ls 命令含了 仓库名、标签、镜像 ID、创建时间 以及所占用的空间。
镜像删除没有任何层依赖当前层时,才会真实的删除当前层。
镜像是容器的基础,每次执行 docker run 的时候都会指定哪个镜像作为容器运行的基础
镜像是一种轻量级的、可执 ...
编程开发
未读Docker命令行的高级用法1. 格式化输出 - 精确获取你需要的信息不要再从一大堆输出中肉眼查找信息了,使用--format可以精确提取你需要的数据:
123# 只获取所有容器的ID和名称docker ps --format "{{.ID}}: {{.Names}}"# 以表格形式展示镜像信息docker images --format "table {{.ID}}\t{{.Repository}}\t{{.Size}}"# 提取容器IP地址docker inspect --format='{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' con ...
Dockerfile 参考及最佳实践DevOpsDocker
工具
最近更新日期: 2020-09-16
文章字数: 5.4k
阅读时长: 20 分
本文是《Docker必知必会系列》第十篇,原文发布于个人博客:悟尘记。
上一篇:Docker必知必会系列(附录1):Docker 常用命令及示例
一、Dockerfile 简介Dockfile 是一种被 Docker 程序解释的脚本,由一条一条的指令组成,每条指令对应 Linux 下面的一条命令。
Docker 通过从Dockerfile文本文件中读取指令来自动构建镜像,该文本文件按顺序包含构建镜像所需的所有命令。遵循特定的格式和指令集,您可以在 ...
dockerfile构建过程
dockerfile 指令详解
FROM
MAINTAINER
RUN
1. Shell
2. exec模式
EXPOSE指令
CMD
ENTERYPOINT
COPY
ADD
VOLUME
WORKDIR
ARG
ENV
USER
ONBUILD
LABEL
HEALTHCHECK
docker案例
构建tomcat镜像
构建python镜像
构建go镜像
Dockerfile 是一个用来构建镜像的文本文件,文本内容包含了一条条构建镜像所需的指令和说明.
基于Dockerfile构建镜像可以使用docker build命令。docker build命令中使用 -f 可以指定具体的dockerfile文件
默认情况下使用Dockerfile(D大写),docker build命令中不用指定就可以构建,如果对docker基础命令不熟,可以看基础篇
dockerfile构建过程从基础镜像运行一个容器
执行一条指令,对容器做出修改
执行类似docker commit的操作,提交一个新的镜像层
再基于刚提交的镜像运行一个新的容器
执行doc ...
为什么需要数据持久化?Docker 中的容器是临时的,并且通常设计为无状态的,这意味着容器在删除或重新创建后,其中的数据会被清除。然而,许多应用程序需要持久化存储数据,以便数据不会丢失,并且在容器重新创建后仍然可用。数据持久化还有助于在多个容器之间共享数据,或者将数据备份到宿主机或远程存储中
常见的 Docker 数据持久化方法以下是 Docker 中常见的数据持久化方法:
数据卷(Volumes):数据卷是一种特殊的目录,可以绕过容器文件系统并将数据存储在宿主机上。数据卷可以被一个或多个容器共享,并且在容器之间持久存在。使用数据卷可以方便地备份、恢复和迁移数据。
绑定挂载(Bind Mounts):绑定挂载允许将宿主机上的文件或目录直接挂载到容器中。这样,容器可以访问宿主机文件系统中的数据,并且对数据的修改也会反映到宿主机上。
命名卷(Named Volumes):命名卷是一种具有名称的数据卷,可以在多个容器之间共享,并且可以方便地管理和使用。通过为卷指定名称,可以在创建容器时直接引用该名称,并且 Docker 会自动创建和管理卷。
数据卷容器(Data Volume Contai ...
【Docker学习】100条常用命令整理一、服务管理命令
systemctl start docker:启动 Docker 服务。在安装好 Docker 后,首次使用或服务停止后需要启动时使用该命令。
systemctl stop docker:停止 Docker 服务。当需要对 Docker 进行维护、更新或临时停止使用时,可执行此命令。
systemctl restart docker:重启 Docker 服务。常用于使新的配置生效,比如修改了 Docker 的配置文件后,需要重启服务。
systemctl status docker:查看 Docker 服务状态。可以了解 Docker 服务是否正在运行,以及运行状态的详细信息,如启动时间、进程 ID 等。
systemctl enable docker:设置 Docker 服务开机自启。确保每次系统启动时,Docker 服务都能自动运行,方便后续使用。
systemctl disable docker:取消 Docker 服务开机自启。如果不想让 Docker 在开机时自动启动,可使用此命令。
docker info:查看 Do ...
Docker学习全攻略:从理论到实践,打造系统化学习路径
学习 Docker 的最佳方式是理论与实践结合,从基础概念入手,通过实际操作加深理解,最后用项目巩固技能。以下是一套系统的学习路径,适合不同基础的学习者:
一、先搞懂核心概念(避免劝退)Docker 的门槛主要在于理解几个核心概念,搞懂它们再动手会顺畅很多:
镜像(Image)
类似软件安装包,包含运行程序所需的代码、依赖、配置等(只读)。
容器(Container)
镜像的运行实例,是独立的可执行单元(可读写,类似 “进程”)。
仓库(Repository)
存放镜像的地方(类似 GitHub,常用 Docker Hub)。
Dockerfile
构建镜像的 “配方文件”,用指令描述如何制作镜像。
Docker Compose
多容器管理工具,用 yaml 文件定义多个容器的关系(比如前端 + 后端 + 数据库)。
可以先通过这张图建立直观认知:仓库(存镜像)→ 拉取镜像 → 运行镜像生成容器 → 操作容器
二、动手实操:从 “跑起来” 开始Docker 是工具,光看理论没用,必须上手操作。推荐步骤:
1. 环境 ...
Dockerfile 定制专属镜像一、使用 Dockerfile 定制镜像1.1、Dockerfile 定制镜像镜像的定制实际上就是定制每一层所添加的配置、文件。如果我们可以把每一层修改、安装、构建、操作的命令都写入一个脚本,用这个脚本来构建、定制镜像,无法重复的问题、镜像构建透明性的问题、体积的问题就都会解决。这个脚本就是 Dockerfile。
Dockerfile 是一个文本文件,其内包含了一条条的指令(Instruction),每一条指令构建一层,因此每一条指令的内容,就是描述该层应当如何构建。
以 nginx 镜像为例,这次我们使用 Dockerfile 来定制。
在一个空白目录中,建立一个文本文件,并命名为 Dockerfile:
123$ mkdir mynginx$ cd mynginx$ touch Dockerfile
其内容为:
12FROM nginxRUN echo '<h1>Hello, Docker!</h1>' > /usr/share/nginx/html/index.html
这个 Dockerf ...
收藏级!Docker 运维人必备 7 大类 30+ 命令速查表
摘要:在现代运维工作中,Docker 已经成为必备工具。本文按「容器 → 镜像 → 网络 → 数据卷 → Compose → 系统 → 实用技巧」的顺序,整理了高频命令与场景示例。收藏这一篇,日常 90% 的 Docker 问题都能快速解决。
1️⃣容器管理
功能
命令示例
备注
运行容器
docker run -d --name nginx -p 80:80 nginx
核心选项:-d 后台、-it 交互、--rm 用完即删
查看容器
docker ps -a
-q 仅显示 ID,方便脚本处理
启停容器
docker start/stop/restart 容器名/ID
stop 优雅,kill 强制
进入容器
docker exec -it 容器名 bash
推荐 exec,attach 会占用主进程
删除容器
docker rm -f 容器名/ID
docker container prune 一键清理已停止
查看日志
docker logs -f 容器名
-f 实时,--tail ...
编程开发
未读Docker是云原生的基石,也是云计算的核心组成。
Docker容器
在容器技术成为云原生基石的今天,Docker 几乎是所有开发者和运维工程师必须掌握的工具。
Docker 是一个开源的容器化平台,用于构建、部署和运行应用程序的容器。
它通过轻量级虚拟化技术,让开发者可以在任何支持Docker的环境中以一致的方式运行应用。
核心思想是:“一次构建,到处运行”。
Docker工作原理
Docker的运行原理,重点围绕镜像 (Images)、容器 (Containers) 和 仓库 (Registries/Repositories) 这三个核心。
如下图所示:
Docker镜像
Docker镜像是一个轻量级、独立的可执行软件包,包含了运行一个软件所需的所有内容:代码、运行时环境、库、环境变量和配置文件。
你可以把它想象成应用程序及其所有依赖项的一个“静态快照”或者“安装包”。
1DockerImage├──Layer1:FROM ubuntu├──Layer2:RUN apt install nginx├──Layer3:COPY index.html /var/www└─ ...
