Docker安装(Docker Engine安装)

一、Docker Engine和Desktop区别

Docker Engine

  • 核心组件:Docker Engine是Docker的核心运行时引擎,负责构建、运行和管理容器。它包括守护进程(dockerd)、API和命令行工具客户端(docker)。
  • 适用环境:Docker Engine适用于没有图形界面的设备,如服务器或虚拟机。它通过命令行界面进行操作,适合需要高度定制化和高性能的生产环境。
  • 特点:Docker Engine提供灵活的API和工具集,支持高级功能如自定义网络配置和安全设置,适合对性能和安全性要求较高的场景。支持常见的Linux平台(未直接提供Mac、Window版)

Docker Desktop

  • 桌面应用:Docker Desktop是一个桌面应用程序,提供了图形界面,支持三类平台:Mac、Windows、带图形界面的Linux,为用户提供了直观地管理容器。
  • 集成特性 :它除了包含Docker Engine外,还集成了以下功能:
    • Docker Engine
    • Docker CLI client
    • Docker Scout (additional subscription may apply)
    • Docker Build
    • Docker Extensions
    • Docker Compose
    • Docker Content Trust
    • Kubernetes
    • Credential Helper

总结下:

Docker Engine是核心,提供命令方式,适合生产服务器环境(也称为Docker CE)。

Docker Desktop不仅包含Engine还集成有其他功能,提供图形操作界面。

二、安装Docker

我们以CentOS 7.9 64bit为例,安装Docker Engine。

其官方说明文档链接:https://docs.docker.com/engine/

注意:对于CentOS 8或者CentOS 9使用dnf包管理器,对于CentOS使用yum包管理器。dnf与yum两者命令参数大致类似。

1、安装docker如下:

bash 复制代码
# 移除Linux上可能存在的旧版本docker
sudo yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine

# 配置docker的yum源。因官方提供https://download.docker.com/linux/centos/docker-ce.repo的比较慢,因此配置为国内阿里源
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

# (二选一)安装最新docker软件
sudo yum install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

# (二选一)安装某个指定版本docker软件(先列出,再选择版本安装)
yum list docker-ce --showduplicates | sort -r
sudo yum install docker-ce-<VERSION_STRING> docker-ce-cli-<VERSION_STRING> containerd.io docker-buildx-plugin docker-compose-plugin

# 安装后,查看docker版本号
docker version

注意:以上安装docker时,会自动创建名为"docker"的Linux组。

2、启动docker

bash 复制代码
# 设置:随Linux开机而自动启动docker
sudo systemctl enable docker

# 启动docker(若在上步enable命令最后增加" --now",则无需再执行以下start)
sudo systemctl start docker

3、启动docker后,通过docker info查看信息

三、配置Docker Image国内镜像源

Docker默认的镜像源是DockerHub,访问较慢。因此我们配置国内镜像源。

1、在**/etc/docker/daemon.json**文件(若不存该文件则新建),增加以下内容(其中国内源URL可能失效则自行搜索寻找):

bash 复制代码
{
    "registry-mirrors": [
        "https://docker.m.daocloud.io",
        "https://docker.rainbond.cc",
        "https://docker.1panelproxy.com"
    ]
}

2、重启docker守护进程,使配置的国内镜像源生效。

bash 复制代码
# 重启Docker守护进程
sudo systemctl daemon-reload
sudo systemctl restart docker

3、重启docker后,通过docker info查看信息。可以看到最后的Registry Mirrors信息

4、执行"sudo docker run hello-world "下载image并运行。正常结果如下,可以看到提示本地没有该image则从网上pull镜像,最后运行容器,显示"Hello from Docker!"。

自此,Docker在Linux上安装成功!

四、赋权非root用户

默认只能root用户才能执行docker命令,为了让Linux上普通用户也能执行,可把指定用户加入至"docker"组中,这样该用户也可以执行docker命令了。

bash 复制代码
sudo usermod -aG docker 用户名

附:内网离线方式

  • 安装

以上安装docker是联机在线方式,不适合内网。 对于内网离线,可以手工下载rpm包并拷贝进内网Linux服务器,然后通过yum安装本地rpm包方式进行安装。

具体可参加官网:https://docs.docker.com/engine/install/centos/#install-from-a-package

  • image获取

以上docker run或者docker pull是联机在线方式,不适合内网。 对于内网离线,可以分两步:

①先在外网获取image后,然后通过以下命令导出保存为tar文件

docker save -o myimage.tar IMAGE_NAME:TAG

②将tar文件拷贝进内网Linux服务器,然后本地从tar文件加载作为image

docker load -i /path/myimage.tar

相关推荐
糠帅傅蓝烧牛肉面1 小时前
单实例多MCP聚合服务:两种实现方案深度对比
前端·docker·ai
403240731 小时前
[Jetson/Ubuntu 22.04] 解决挂载 exFAT 硬盘报错 “unknown filesystem type“ 及只读权限问题的终极指南
linux·运维·ubuntu
零意@2 小时前
debian如何把新编译的内核镜像替换原来的内核
运维·debian·更新内核版本·linux内核版本更新·debian更新内核
Love丶伊卡洛斯2 小时前
Ubuntu 部署 STUN服务端
linux·运维·ubuntu
汪碧康3 小时前
一文掌握k8s的升级更新策略
云原生·容器·kubernetes·k8s·亲和性·xkube
有毒的教程3 小时前
SaltStack 开源自动化运维工具详细介绍
运维·开源·saltstack
大房身镇、王师傅3 小时前
【VirtualBox】VirtualBox 7.1.6 RockyLinux10 配置增强功能 设置共享目录
运维·服务器·virtualbox·rockylinux10
betazhou4 小时前
rsync使用案例分析
linux·运维·服务器·rsync·同步数据
杨浦老苏4 小时前
离线优先的自托管笔记应用Anchor
笔记·docker·群晖
zcz16071278214 小时前
docker部署 WVP-Pro
容器