Docker 入门到实战教程(三)镜像和容器

article/2025/8/27 7:49:43

上一篇文章介绍到Docker的安装,那我们就来验证下    验证安装结果

docker run --rm hello-world

输入以下的内容代表安装成功

file

下面开始镜像和容器操作

一. 镜像操作

Docker完美融合Linux,所以Docker命令行的风格和Linux还是比较接近的,相对来说比较容易上手,首先,我们先说镜像相关的命令:

1.1 查看docker所有命令

docker 客户端非常简单 ,我们可以直接输入 docker 命令来查看到 Docker 客户端的所有命令选项。

docker
file

可以通过命令 docker command --help 更深入的了解指定的 Docker 命令使用方法。

1.2 获取命令更多使用

例如我们要查看 docker stats 指令的具体使用方法:

docker stats --help
file

1.3 搜索镜像

docker search 镜像名

例如: 搜索centos相关的镜像

docker search centos
file
  • NAME: 镜像仓库源的名称

  • DESCRIPTION: 镜像的描述

  • OFFICIAL: 是否 docker 官方发布

  • stars: 类似 Github 里面的 star,表示点赞、喜欢的意思。

  • AUTOMATED: 自动构建。

1.4 拉取镜像

拉取镜像到本地服务器,默认TAG是laster即最新版本

docker pull 镜像名

例如: 拉取centos

docker pull centos
file

大家可能会看到,我拉取的时候并没有指定版本,默认最新的laster

1.5 查看所有的镜像

docker images
file

各个选项说明:

  • REPOSITORY:表示镜像的仓库源

  • TAG:镜像的标签

  • IMAGE ID:镜像ID

  • CREATED:镜像创建时间

  • SIZE:镜像大小

大家可能会发现为什么有hello-world镜像,因为当我们执行docker run --rm hello-world的时候,在本地找不到hello-world镜像,就会自动到Docker Hub上找到相应镜像下载回来,再根据此镜像来新建并启动容器。

1.6 查看中间层镜像:

docker images -a

如果不同镜像之间有复用的中间层,这里就会看见一些没有镜像名和标签的镜像,很多镜像依赖这些中间层,所以中间层镜像是不能随意删除的。

1.7 删除镜像

当我们想删除一些不需要的镜像时,比如hello-world镜像,可以执行:

docker rmi hello-world
file

1.8 强制删除镜像

如果此时有基于此镜像的容器,则需要先删除相应的容器才能删除此镜像,如果想强制删除镜像,加上-f参数即可:

docker rmi -f <image name>

1.9 清除所有虚悬镜像

在使用docker images查看本地镜像时(不加-a参数时),我们也可能会发现一些没有镜像名和标签的镜像:

不同于上面提到的中间层镜像,我们称这种镜像为虚悬镜像(dangling image),有几种情况会产生虚悬镜像,比如上述强制删除一个已经运行容器的镜像,或者使用docker pull命令更新镜像时,镜像的名称和标签会转移到新镜像中,旧的镜像就会变成虚悬镜像,另外,在使用docker build构建镜像的时候,如果构建失败也会产生虚悬镜像。一般来说虚悬镜像已经没有实际用处,可以随意删除,一条命令就能清除所有虚悬镜像:

docker image prune

1.10 导出镜像

我们用docker pull命令将镜像从Docker Hub下载到本地,如果目标环境不能访问外网时无法下载,我们就可以直接导出镜像文件:

docker save -o centos_demo.tar centos
  • -o参数后面接着输出文件名。

  • centos是需要导出的镜像名。

1.11 导入镜像

然后拷贝此镜像文件到目标环境中,并导入镜像:

docker load -i centos_demo.tar

导入后可以即可通过docker images查看镜像。

1.12 修改镜像名称及标签

如果我们想把镜像名称改为centos:1.0,则执行:

docker tag centos:latest centos:1.0
file

大家可能看到怎么是两个了因为同一仓库源可以有多个 TAG,代表这个仓库源的不同个版本,如 centos 仓库源里,有 laster、1.0 等多个不同的版本,我们使用 REPOSITORY:TAG 来定义不同的镜像。

二. 容器操作

2.1 启动容器

docker run -it centos
file

参数说明:

  • -i: 交互式操作。

  • -t: 终端。

  • centos: centos 镜像。

要退出终端,直接输入 exit:

exit
file

2.2 查看容器

执行以下命令可以查看所有容器及其状态:

docker ps -a
file

代表容器运行情况,什么时候创建的,已经运行多久和停止多久了

启动已停止运行的容器

在上图中发现centos已经停止的了

2.3 启动容器

使用 docker start 启动一个已停止的容器:

docker start 8cfd1216226e
file

2.4 后台运行

在大部分的场景下,我们希望 docker 的服务是在后台运行的,我们可以过 -d 指定容器的运行模式。

file

注:加了 -d 参数默认不会进入容器,想要进入容器需要使用指令 docker exec(下面会介绍到)。

2.5 停止一个容器

停止容器的命令如下:

docker stop <容器 ID>
file

停止的容器可以通过 docker restart 重启:

docker restart <容器 ID>
file

2.6 进入容器

在使用 -d 参数时,容器启动后会进入后台。此时想要进入容器,可以通过以下指令进入:

  • docker attach

  • docker exec:推荐大家使用 docker exec 命令,因为此退出容器终端,不会导致容器的停止。

2.6.1 attach 命令

下面演示了使用 docker attach 命令。

docker attach 602237bcc6d6
file

注意:如果从这个容器退出,会导致容器的停止。

file
2.6.2 exec 命令

下面演示了使用 docker exec 命令。

docker exec -it 602237bcc6d6 /bin/bash
file

可以看到我使用进入命令进入容器,报错提示这个容器未运行,验证了之前的说法,我重启后再次进入即可

注意:如果从这个容器退出,不会导致容器的停止,这就是为什么推荐大家使用 docker exec 的原因。

更多参数说明请使用docker exec --help命令查看。

2.7 导出和导入容器

2.7.1 导出容器

如果要导出本地某个容器,可以使用 docker export 命令。

docker export 602237bcc6d6 > centos.tar
file
2.7.2 导入容器快照
docker import centos.tar my_centos:1.0
file

2.8 删除容器

删除容器使用 docker rm 命令:

docker rm 602237bcc6d6
file

看到使用docker rm删除容器会报错,提示不能删除一个正在运行的容器

2.9 强制删除容器

docker rm -f 602237bcc6d6

2.10 清理掉所有处于终止状态的容器。

docker container prune

三. 模拟实战运行web应用

3.1 运行一个 web 应用

前面我们运行的容器并没有一些什么特别的用处。接下来让我们尝试使用 docker 构建一个 web 应用程序。我们将在docker容器中运行一个 Python Flask 应用来运行一个web应用。

3.2 载入web镜像

docker pull training/webapp

3.3 后台启动容器

docker run -d -P training/webapp python app.py

参数说明:

  • -d:让容器在后台运行

  • -P:将容器内部使用的网络端口映射到我们使用的宿主机上

3.4 查看WEB容器:

docker ps
file

Docker 开放了 5000 端口(默认 Python Flask 端口)映射到主机端口 32768 上。

如果在云服务器安全组需要开放端口和防火墙放行    再通过浏览器访问WEB应用:

file

3.5 参数设置端口

也可以通过 -p 参数来设置不一样的端口:

docker run -d -p 5000:5000 training/webapp python app.py
file
file

3.6 查看WEB应用程序日志

docker logs [ID或者名字] 可以查看容器内部的标准输出:

docker logs 970dc67458f6

docker logs wizardly_nightingale
3.6.1 命令介绍

docker logs命令可以查看容器的日志

3.6.2 命令格式
$ docker logs [OPTIONS] CONTAINEROptions:--details        显示更多的信息-f, --follow         跟踪实时日志--since string   显示自某个timestamp之后的日志,或相对时间,如42m(即42分钟)--tail string    从日志末尾显示多少行日志, 默认是all-t, --timestamps     显示时间戳--until string   显示自某个timestamp之前的日志,或相对时间,如42m(即42分钟)

3.7 跟踪实时日志

docker logs -f 970dc67458f6
file
3.7.1 查看最近30分钟的日志:
docker logs --since 30m 970dc67458f6
file
3.7.2 查看某时间之后的日志:
docker logs -t --since="2020-03-08T13:23:37" 970dc67458f6
file

3.8 查看WEB应用程序容器的进程

docker top 来查看容器内部运行的进程:

docker top 970dc67458f6
file

3.9 检查WEB应用程序

使用 docker inspect 来查看Docker的底层信息,返回一个 JSON 文件记录着 Docker 容器的配置和状态信息:

docker inspect 970dc67458f6
file

3.10 停止WEB应用容器:

docker stop 970dc67458f6
file

3.11 重启WEB应用容器:

已经停止的容器,我们可以使用命令 docker start 来启动。

docker start 970dc67458f6
file

3.12 查询最后一次创建的容器

docker ps -l 查询最后一次创建的容器:

docker ps -l

正在运行的容器,我们可以使用docker restart命令来重启。

3.13 移除WEB应用容器

使用 docker rm 命令来删除不需要的容器(删除容器时,容器必须是停止状态):

docker rm 970dc67458f6

移除正在运行的容器可以强制移除    docker rm -f

docker rm -f 970dc67458f6
file

参考资料:
http://iii30.cn/Ig8w9u

 往期推荐 

????

Docker 入门到实战教程(一)介绍Docker

Docker 入门到实战教程(二)安装Docker


http://chatgpt.dhexx.cn/article/3w1nO5LA.shtml

相关文章

Docker入门实战大全终极版

Docker入门 学习推荐 哔哩哔哩 狂神说java 本文主要学习大纲 Docker组成 Docker基本操作 Docker安装卸载Docker阿里云镜像加速Docker run 运行流程图底层原理 Docker的常用命令 帮助命令镜像命令 docker images 查看所有本地的主机上的镜像docker search 搜索镜像docker pull…

Docker入门实战看这篇就够了(最新详细以及踩过的坑)

Docker入门实战看这篇就够了 前言初识是什么容器与虚拟机 能干什么去哪玩 安装先决条件查看自己的内核 安装所需的软件包(支持devicemapper存储类型)设置镜像的仓库设置yum源安装docker启动docker测试配置自己的阿里云镜像加速(强烈推荐)注册登录阿里云开发平台进入控制台选择容…

Docker 基础实战教程:入门

Docker 基础实战教程&#xff1a;入门 前言Hello Docker !Docker使用的基本过程Docker使用基本实例 拉取镜像获取镜像docker pull命令背后的工作docker pull的两个基本实例设置镜像加速器 导入导出容器docker export和docker save的区别 前言 Docker是一个操作系统级的虚拟化技…

Docker 入门到实战教程(十三)Docker Compose

文章目录 一. Docker Compose 概述与使用二. 安装 Docker Compose三. 使用Docker Compose四. 更新Docker Compose五. 更新应用程序测试 一. Docker Compose 概述与使用 1.1 概述 Compose 项目是 Docker 官方的开源项目,负责实现对 Docker 容器集群的快速编排,定义和运行多容器D…

我的Docker学习笔记:从入门到实战过程全记录

文章目录 1 和Docker相关的概念1.1 虚拟机和容器1.2 容器、镜像和Docker1.3 Docker和k8s 2 Docker的安装2.1 在ubuntu中安装2.2 在Win10中安装2.3 Hello world 3 Docker镜像的使用3.1 列出本地所有镜像3.2 从镜像库中查找镜像3.3 下载新的镜像 4 Docker容器的使用4.1 启动容器4…

Docker入门与实战讲解

简述 Docker 是一个开源的应用容器引擎&#xff0c;让开发者可以打包他们的应用以及依赖包到一个可移植的容器中&#xff0c;然后发布到任何流行的 Linux 机器上&#xff0c;也可以实现虚拟化。容器是完全使用沙箱机制&#xff0c;相互之间不会有任何接口&#xff08;类似 iPh…

Docker 入门到实战教程(一)介绍Docker

一. Docker简介 1.1 什么是虚拟化? 在计算机中&#xff0c;虚拟化&#xff08;英语&#xff1a;Virtualization&#xff09;是一种资源管理技术&#xff0c;是将计算机的各种实体资源&#xff0c;如服务器、网络、内存及存储等&#xff0c;予以抽象、转换后呈现出来&#xff0…

Docker——入门实战

I. Docker 简介 Docker是一种新兴的虚拟化技术&#xff0c;能够一定程度上的代替传统虚拟机。不过&#xff0c;Docker 跟传统的虚拟化方式相比具有众多的优势。我也将Docker类比于Python虚拟环境&#xff0c;可以有效的配置各个版本的开发环境&#xff0c;比如深度学习与Java…

Docker超详细教程——入门篇+实战

Docker详细教程——入门篇 官方地址docker概念相关概念docker底层操作流程docker好处为什么比虚拟机快 docker常用命令概览 docker安装本教程环境安装步骤解决提示找不到软件包&#xff1a;添加阿里云镜像 镜像镜像底层原理镜像命令官方地址镜像命令搜索镜像拉取镜像镜像删除 d…

Docker 从入门到实战

docker rm删除已经终止的容器docker -f rm 可以删除正在运行的容器 本文主要介绍了Docker 从入门到实战&#xff1a;概述、安装及部署等 。希望对你的学习有帮助。 一、概述 1.1 基本概念 Docker 是一个开源的应用容器引擎&#xff0c;基于 Go 语言 并遵从 Apache2.0 协议开…

docker 入门到实战

目录 1.Docker介绍 1.1 简介&#xff1a; 1.2 Docker的应用场景 1.3 Docker 的优点 1.4 Docker 架构 Docker包括三个基本概念: Docker和虚拟机区别&#xff1a; 2.Docker安装 2.1 CentOS Docker 安装 2.2卸载旧版本 2.3设置仓库 2.4安装Docker 2.5启动docker 2.6…

Virtualbox虚拟机安装Mac os14教程

1、VirtualBox虚拟机 下载地址&#xff1a;https://www.virtualbox.org/ 特别提醒&#xff1a;推荐官方下载&#xff0c;安装VirtualBox虚拟机的时候请保持默认安装位置&#xff08;就是直接点下一步&#xff0c;不要自己修改安装位置&#xff09; 2. Mac Os14下载 下载地址…

pd虚拟机安装linux系统,Mac利用PD虚拟机安装CentOS 7

Post Views: 263 使用Parallels Desktop在Mac上安装CentOS Linux的方法有两种: 通过使用Parallels Desktop中可用的CentOS设备。 通过使用从Internet下载的安装映像手动安装CentOS。 使用设备安装CentOS 1.启动Parallels Desktop,然后 从Mac顶部栏中选择 File – New。 2.从…

虚拟机安装MAC系统、搭建ios开发环境

MacOS系统资源&#xff0c;网盘下载&#xff1a;https://pan.baidu.com/s/1xRWusbgfIUxJxMpUbWWRag 提取码: 08fc 1、安装虚拟机 虚拟机下载&#xff1a; http://www.onlinedown.net/soft/2062.htm 注册码&#xff1a; AZ312-2FE41-M81LP-R6WEZ-NA2Z4 VC1J8-0TX11-M84WP-2WN…

mac 安装虚拟机win11

下载PD安装包、win11镜像、PR试用 链接: https://pan.baidu.com/s/1A6M_dc-mL4oUMpVak9Cu3A 提取码: 1cfl 1、下载好后&#xff0c;允许访问文件权限 2、这一步可直接安装&#xff0c;或者跳过通过win11的IOS镜像导入&#xff0c;win11则选择跳过 3、跳过则到该页面&#xff…

VMware14虚拟机安装Mac OS教程

搬运一波&#xff0c;在论坛里搜了下&#xff0c;没有这个教程&#xff0c;就来分享给大家&#xff0c;还是很不错的东西呢&#xff01;给大家分享在Windows10系统上用Vmware14虚拟机安装苹果Mac os x系统的方法~准备工具 Vmware14虚拟机unlocker补丁mac os x 镜像 下载好上面…

mac下安装win7虚拟机

首先需要有Parallels desktop这个工具 下载win7镜像&#xff0c;下载链接https://msdn.itellyou.cn/ 找到windows7操作系统&#xff0c;下载第一个 下载方式为复制下载地址ed2k链接&#xff0c;然后打开迅雷&#xff08;或qq旋风等下载工具&#xff09;&#xff0c;自动识别到…

Mac安装Linux虚拟机

1、首先安装VMware 链接地址&#xff1a;https://www.vmware.com/products/fusion/fusion-evaluation.html 安装好后输入txt里的激活码 2、下载linux镜像 下载地址&#xff1a;https://www.centos.org/download/ 这里我装的是CentOS8版本的&#xff0c;在后续安装的过程中&…

VMware 14虚拟机安装Mac OS 10.14详细教程

由于需要开发IOS版本的AR软件&#xff0c;身边都是Windows系统&#xff0c;所以只能在虚拟机上进行开发了。首先从安装mac OS开始&#xff01;&#xff01; 所需工具&#xff1a; 1、VMware Workstation 14 2、用于VMware的macOS补丁&#xff0c;unlocker 下载地址&#xff1…

VMware workstation虚拟机安装mac os 12 教程

首先&#xff0c;我们要下载VMware workstation&#xff0c;我把地址给在这 https://download3.vmware.com/software/wkst/file/VMware-workstation-full-16.1.0-17198959.exe 运行安装&#xff0c;安装好了以后 然后下载补丁&#xff0c;地址我也给在这https://cloud.189.c…