一、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如下:
# 移除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
# 设置:随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可能失效则自行搜索寻找):
{
"registry-mirrors": [
"https://docker.m.daocloud.io",
"https://docker.rainbond.cc",
"https://docker.1panelproxy.com"
]
}
2、重启docker守护进程,使配置的国内镜像源生效。
# 重启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命令了。
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