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

相关推荐
网络安全小吗喽11 分钟前
靶场(十三)---小白心得&&思路分享---Levram
linux·运维·服务器·测试工具·安全·网络安全
故事与他64512 分钟前
vulhub-Billu-b0x攻略
android·linux·运维·服务器·web安全·github
Do vis.57641 分钟前
网络编程中客户端与服务器的搭建与协议包应用
运维·服务器·网络
解决方案工程师1 小时前
jenkins pipline 自动化测试
运维·jenkins
小美哥13141 小时前
Linux中find 命令的高级用法 组合条件 与、或、非(-a、-o、!) 以及通过 -regex 和 -iregex 选项使用正则表达式
linux·运维·服务器·正则表达式·云计算·bash
为什么要做囚徒1 小时前
Centos离线安装gcc
linux·运维·centos
TechStack 创行者1 小时前
基于 Docker 和 Flask 构建高并发微服务架构
docker·微服务·容器·架构·flask
球求了2 小时前
Linux 入门:权限的认识和学习
linux·运维·服务器·开发语言·学习
risc1234562 小时前
【k8s】containerd兼容docker镜像
docker·云原生·容器·kubernetes
mzak2 小时前
openEuler系统迁移 Docker 数据目录到 /home,解决Docker 临时文件占用大问题
docker·容器