目前docker在国内安装常存在众所周知的网络问题,如果安装过程如果从官网地址安装以及安装之后从官网要拉取镜像都存在问题。这篇文章主要针对这两个问题总结最靠谱的docker安装教程。
1. docker安装
1.1 系统环境概述
- Ubuntu 22.04
- linux内核版本 6.8(版本不低于3.10)
1.2更新ubuntu
$ sudo apt update
$ sudo apt upgrade
$ sudo apt full-upgrade
1.3 添加docker库
1.3.1 安装docker的必要依赖
sudo apt install apt-transport-https ca-certificates curl software-properties-common gnupg lsb-release
1.3.2 添加docker GPG密钥
curl -fsSL http://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
这里选择从阿里云上docker密钥添加,官方密钥存在网络问题,添加命令会不成功,成果了之后也下载不了docker。 这里会将密钥写入ubuntu密钥环中(/etc/apt/trusted.list)
1.3.2 添加docker仓库
sudo add-apt-repository "deb [arch=amd64] http://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"
这里也是选择阿里的镜像源。
1.3.3 更新apt
sudo apt update
1.3.3 安装docker
sudo apt install docker-ce docker-ce-cli containerd.io docker-compose-plugin
这个命令一共安装了4个软件包:
Docker CE:Docker的社区版,是一个开源的容器化平台,允许开发者打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上。
Docker CE CLI:Docker容器平台的命令行界面,用于与Docker守护进程交互和管理容器。
container.io :
负责启动和运行容器,管理容器的生命周期,包括下载容器镜像、创建和销毁容器等。它提供了一个稳定和安全的运行时环境。
Docker Compose Plugin:Docker Compose的命令行工具,Docker Compose是一个工具,用于定义和运行多容器Docker应用程序。
1.3.4 配置用户组
docker的运行一般都要用root用户来运行,配置用户组可以让当前用户直接使用docker
sudo usermod -aG docker $USER
sudo reboot
1.3.5 验证docker
重启ubuntu系统之后,首先验证docker服务是否正在运行,如未运行尝试开启,然后尝试拉取镜像。
#y验证docker服务状态
$ systemctl status docker.service
$ systemctl statue docker.socket
#如果显示都在runing 则直接拉去容器;否则请采用下面命令开启服务。
$ systemctl start docker.service
$ systemctl start docker.socket
#查看docker版本
sudo docker version
#拉取docker容器
docker run hello-world
这里最后拉去镜像大概率会出错,因为从官网上拉取存在网络问题。
2. docker镜像拉取配置
目前docker很多镜像站都失效了(包括阿里的镜像站),截止目前华为云的镜像站还可以使用:
进入华为云搜索“容器镜像服务”或者 "SWR" ,进入控制台
点击 “镜像资源”---> “镜像中心”---> "镜像加速器"
修改“/etc/docker/daemon.json”文件(如果没有,可以手动创建),在该文件内添加如下内容:
#使用vim打卡daemon.json文件
sudo vim /etc/docker/daemon.json
#向文件中添加如下内容
{
"registry-mirrors": [ "https://你的地址.mirror.swr.myhuaweicloud.com" ]
}
按“Esc”,输入:wq保存并退出。
如何镜像站也不可用了,可以参考这篇文章自己搭建一个地址。
在完成文件修改之后要重启,docker服务使得的配置生效。但是这里注意直接resart docker可能配置不会生效(不知道原因)
#直接restart
$ sudo systemctl daemon-reload
$ service docker restart
#可以代替的方法
$ sudo systemctl daemon-reload
$ sudo systemctl stop docker.service
$ sudo systemctl stop docker.socket
$ sudo systemctl start docker.service
$ sudo systemctl start docker.socket
#查看docker配置信息
docker info
最后docker info之后出现registry-mirrors参数就是配置正常了。
3. docker基本使用
对于docker的使用教程可以查看这篇文章地址
4. 参考资料
国内无法拉取Docker镜像了?这些方法拯救你的Docker-腾讯云开发者社区-腾讯云https://cloud.tencent.com/developer/article/2434428