Docker 基础实战教程:入门

article/2025/8/27 7:53:01

Docker 基础实战教程:入门

  • 前言
  • Hello Docker !
    • Docker使用的基本过程
    • Docker使用基本实例
  • 拉取镜像
    • 获取镜像
    • docker pull命令背后的工作
    • docker pull的两个基本实例
    • 设置镜像加速器
  • 导入导出容器
    • docker export和docker save的区别

前言

Docker是一个操作系统级的虚拟化技术,是基于LXC技术构建的轻量级容器引擎。与传统的虚拟化技术相比,Docker具有更高效的系统资源利用率、更快速的启动时间、提供一致的运行环境、更轻松的迁移等众多优势。自2013年0.1版本发布以来,围绕Docker逐渐形成了繁荣的生态,迅速的成为国内外各大云计算厂商和开发者手中的利器,并得到大规模的实践应用。

在这里插入图片描述
“没有集装箱,就不会有全球化”,集装箱的出现改变了全球化的现代生产与运输体系。Docker是一套以容器技术为核心的思想和一套标准化的体系,是IT领域的“集装箱”。只是,这个“集装箱”会改变整个IT世界吗?

Hello Docker !

镜像

镜像可以理解为一个打包了运行环境的特殊文件系统,它包含了容器启动运行所需的所有信息,包括运行程序和配置数据等。镜像不包含任何动态数据,其内容在构建之后也不会改变。

例如,一个官方的Ubuntu14.04镜像,就包含了一套完整的Ubuntu14.04最小系统的root文件系统。

容器

镜像容器的关系,类似于面向对象程序设计中的实例一样,镜像是静态的定义,而容器是镜像运行时的实体,可以看成是一个具备某个运行环境的非常轻量的虚拟机。容器可以被创建、启动、停止和删除等。在创建容器时,需要显示地为容器指定镜像。指定镜像之后,容器就具备了镜像中保存的运行环境了。

例如,可以为容器指定Ubuntu14.04的镜像,然后该容器就具备Ubuntu14.04的运行环境了。

Docker使用的基本过程

容器需要基于一个镜像来创建和使用。因此,Docker容器的使用一般有以下三个步骤:

1.获取一个镜像;  
2.基于该镜像创建并启动一个容器;  
3.进入该容器,执行“程序”。  
  • 第一步:获取镜像;
    上面我们提到了“镜像”可以理解为一个打包了运行环境的文件系统。然而在安装完Docker服务之后,本地是没有任何镜像的,所以首先需要获取所需要的镜像。

  • 第二步:创建并启动容器;
    在获取到所需的镜像之后,就可以基于该镜像创建并启动一个容器,该容器就具备了镜像包含的运行环境了。同时,在创建容器时也可以设置容器的启动命令,该命令会在容器启动时执行。

  • 第三步:进入容器并执行程序;
    在容器成功创建并启动之后,该容器就具备了ubuntu的运行环境。我们可以进入该容器内部,并在其内部执行任何在ubuntu系统上的程序了。这里的“程序”可以是“Linux命令”、“shell脚本”、“C++程序”等。

Docker使用基本实例

启动一个容器并输出“Hello Docker”的基本语句如下:

docker pull busybox:latest  
docker run --name first_docker_container busybox:latest echo "Hello Docker"  
  • 第一条命令:获取一个名为busybox:latest的镜像。这条命令会从Docker Hub官方镜像仓库获取一个名为busybox:latest的镜像(busybox的最新版),并把它下载到宿主机。其中busybox是最小的Linux系统。
  • 第二条命令: 创建并启动一个容器,并执行相应命令。首先,--name设置容器的名字为first_docker_container,然后为容器指定了busybox:latest作为启动镜像,最后设置了该容器的启动命令为echo "Hello Docker"。容器启动并输出 “Hello Docker”后,将其停止。
  • 其实我们也可以去掉第一条命令,直接使用第二条命令即可完成同样的功能。后台在执行命令时,发现本地没有busybox:latest镜像,会首先自动执行docker pull busybox:latest,将busybox:latest镜像下载到宿主机,然后再以busybox镜像作为基础,创建一个名为first_docker_container的镜像,并执行echo “Hello Docker”命令。

生命是自然的赏赐,但幸福的生活,则是智慧的赏赐。

拉取镜像

在没有使用Docker之前,如果我们要准备一个ubuntu的运行环境,那么首先我们得安装一个ubuntu的系统,多么麻烦,多么耗时啊!!而使用Docker之后,只需要从Docker Hub中拉取一个ubuntu镜像,基于该ubuntu镜像启动一个容器,就可以在容器中做任何在ubuntu系统中做的事情,整个过程大约2-3分钟,而且主要的时间是用于下载镜像!是不是非常方便呢?

在这里插入图片描述
在Docker的官方镜像仓库Docker Hub中保存了各种各样的镜像,这些镜像中保存了各种各样的运行环境。例如包含Linux运行环境的“ubuntu”镜像、“centos”镜像、“busybox”镜像等。

  • Docker Hub官网:https://hub.docker.com/

获取镜像

默认情况下,使用docker pull命令,会从官方的Docker Hub库中将镜像拉取到本地。

docker pull [OPTIONS] <仓库名><标签>  

其中,

  • docker pull:Docker拉取镜像的命令关键词;
  • [OPTIONS]:命令选项;
  • 仓库名:仓库名的格式一般为<用户名>/<软件名>。对于Docker Hub,如果不指定用户名,则默认为library,即官方镜像;
  • 标签:标签是区分镜像不同版本的一个重要参数,<仓库名>:<标签>会唯一确定一个镜像。默认为latest

例如,我们要从Docker Hub官方仓库拉取一个Ubuntu 14.04的官方镜像,其语句如下:

docker pull ubuntu:14.04  

docker pull命令背后的工作

首先,如果tag值为空,即没有指定标签,就会使用默认tag,也就是latest,如果tag值不为空,就使用指定的tag。

然后,默认情况下,会在Docker Hub中寻找名为“repoName”的仓库,如果仓库不存在,返回错误信息。如果仓库存在,就从仓库中拉取对应tag的镜像。

例如:如果执行docker pull ubuntu:14.04,那么将从“ubuntu”仓库中拉取tag为14.04的镜像,而如果执行docker pull ubuntu,会从“ubuntu”仓库中拉取tag为latest的镜像。
(在Docker Hub中有很多个镜像仓库,一般情况下会将同一类型的镜像放在同一个仓库中,例如在一个ubuntu仓库中由很多个ubuntu镜像组成,包括ubuntu:14.04、ubuntu:16.04、ubuntu:latest等等镜像)。

最后,将拉取的镜像存储到本地的指定位置。

docker pull的两个基本实例

执行docker pull ubuntu之后,会有下面的执行结果。(执行命令之前,本地并不存在ubuntu:latest镜像)。

如下图所示,因为没有显示地指定tag,所以就使用默认tag,也就是latest。于是会在Docker Hub中从ubuntu仓库中拉取ubuntu:latest镜像,当将镜像一层层下载完成后,存储到本地。

[root@localhost Desktop]# docker pull ubuntu  
Using default tag: latest  
latest: Pulling from library/ubuntu  
e0a742c2abfd: Pull complete   
486cb8339a27: Pull complete   
dc6f0d824617: Pull complete   
4f7a5649a30e: Pull complete   
672363445ad2: Pull complete   
Digest: sha256:84c334414e2bfdcae99509a6add166bbb4fa4041dc3fa6af08046a66fed3005f  
Status: Downloaded newer image for ubuntu:latest  
[root@localhost Desktop]#   

那从Docker Hub中拉取一个不存在的镜像会怎么样呢?如下所示,执行docker pull aaa后,会在Docker Hub中查找aaa仓库,由于不存在aaa仓库,所以没有找到,返回了错误信息。

[root@localhost Desktop]# docker pull aaa  
Using default tag: latest  
Error response from daemon: repository aaa not found: does not exist or no pull access  

设置镜像加速器

由于“伟大的墙”的原因,在国内从Docker Hub中拉取镜像的速度可能会比较慢,国内很多云服务商都提供了镜像加速器服务,例如阿里、网易等等。

Linux系统配置阿里云加速器为例,只需要将下面的命令复制到Linux的终端,以root用户的身份执行之后,就成功的配置了阿里云加速器了!

#以root用户执行以下操作  
mkdir -p /etc/docker  
tee /etc/docker/daemon.json <<-'EOF'  
{#下面的URL可以替换为你自己的阿里云加速地址  
"registry-mirrors": ["https://jxus37ad.mirror.aliyuncs.com "]  
}  
EOF  
systemctl daemon-reload  
systemctl restart docker  

导入导出容器

#以busybox为镜像创建一个容器,容器名为busyboxContainer
#拉取busybox 最新镜像,实际生产中,docker pull 这一步可以省略,docker run的时候会自己去拉取。
docker pull busyboxdocker run --name busyboxContainer busybox echo "hello"
#1.然后将busyboxContainer导出为容器快照:busybox.tar
#********** Begin *********#
docker export busyboxContainer > busybox.tar
#********** End **********##2.最后使用该容器快照导入镜像,镜像名为busybox:v1.0。
#********** Begin *********#
cat busybox.tar | docker import - busybox:v1.0
#********** End **********#

docker export和docker save的区别

首先,两者的操作对象不同。docker save是将一个镜像保存为一个tar包,而docker export是将一个容器快照保存为一个tar包。

然后,docker export导出的容器快照文件将丢弃所有的历史记录和元数据信息,即仅保存容器当时的快照状态;而docker save保存的镜像存储文件将保存完整记录,体积也要大。下图就能够很好的说明,ubuntu:test仅仅占97.8MB而ubuntu:latest却占了120MB。

[root@localhost step2]# docker images ubuntu  
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE  
ubuntu              test                34be0173049d        5 seconds ago       97.8 MB  
ubuntu              latest              14f60031763d        2 weeks ago         120 MB  
[root@localhost tempdir]# docker run ubuntu:test ls /dir1  
1.txt  
2.txt  

加油!

感谢!

努力!


http://chatgpt.dhexx.cn/article/Xcq1kibK.shtml

相关文章

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…

关于MAC如通过虚拟机安装ubuntu

效果 题外话&#xff1a;额&#xff0c;主要mac买了也有一年多了&#xff0c;也没怎么用&#xff0c;最近在复习linux内容&#xff0c;想在macpro上装一个ubuntu&#xff0c;之前一直是用win10装的虚拟机和linux&#xff0c;然后发现mac全部都是要钱的&#xff0c;然后还有m1和…

虚拟机安装Mac OS 报五国语言

VM虚拟机启用MAC系统出现 五国语言问题 反复重启 解决办法&#xff1a; 二、下载Unlock3.0.2文件并安装 1、下载Unlock3.0.2文件 下载地址&#xff1a;https://www.sdbeta.com/wg/2017/1014/213230.html 然后重启虚拟机竟然可以了 参考地址&#xff1a; https://blog.csdn…

windows虚拟机安装Mac OS系统(操作图解)

★ 背景 因为工作需要学习ios开发&#xff0c;但是苹果电脑申请了还没审批下来所以想着先搭建一个虚拟机来熟悉开发环境安装环境 windows&#xff0c;vmware 16 Pro 一、准备工作 1. vmware 16 Pro 下载 2. unlocker 下载地址&#xff0c;选择zip下载 3. macos12.6 &#xff…