前言
先说结论吧,翻不了墙的就放弃按官方指令来了,根本不可能,只会显示连接不上,失败的过程我已经留在下面了,从更新软件起都是,如果有大神能有办法翻过墙去连上,就带我们看看连过去的世界什么样吧,这篇文章主要说的是离线用deb包手动安装。且作者的情况属于是虚拟机环境翻不了墙,但主机能翻墙的,所以这里的deb包其实也是翻墙出去下载回来的,完全没翻墙办法的朋友,推荐直接找人拿资源吧,作者这里后续有机会会上传这个ubuntu22.04的镜像上来。
1.查看版本号
lsb_release -a
这里可以看到我们是22.04的,属于是jammy,记下来一会用得到。
2.deb包离线安装
2.1下载deb包
ubuntu教程支持链接:在 Ubuntu 上安装 Docker 引擎 |Docker 文档
https://download.docker.com/linux/ubuntu/dists/
首先去到上述网址,按下面的路径一路点击
这里注意了,Linux里ubuntu选择的应该是amd64而不是arm64,不然后续安装会出错。比如这样:
这里官方没有指出要什么版本号的,我就挑了同一个发布时间的五个部分,这里展示的安装包是最终测试能用的,可以直接按我的来,也可以自己在测试测试,安装不上系统会提示的。
2.2 移动deb包进Ubuntu
下载下来到自己电脑之后直接在Ubuntu上创建一个文件夹复制过去即可,如果复制不过去,应该是缺少了一个工具,以下命令执行后重启试试看。
sudo apt-get install open-vm-tools-desktop
2.3 安装deb包
移动过来之后用终端cd到deb包所在的文件夹路径下,执行下面的命令:
sudo dpkg -i ./containerd.io_<version>_<arch>.deb \
./docker-ce_<version>_<arch>.deb \
./docker-ce-cli_<version>_<arch>.deb \
./docker-buildx-plugin_<version>_<arch>.deb \
./docker-compose-plugin_<version>_<arch>.deb
这里只有sudo dpkg -i是固定的,后面的是我们把那几个包复制到虚拟机的所在路径,比如我是在虚拟机建立了个文件夹并拉进去,所以我的路径就是文件夹下的
2.4 docker基础功能测试
这里就是简单的查看docker的版本号以及拉取镜像hello-world来检测是否能正常运行,当遇到如下问题时可以这样解决。
拉取镜像失败及如何解决
参考链接:docker 拉取不到镜像的问题:拉取超时_docker拉取镜像超时-CSDN博客
根据提供的截图内容,这是一个命令行输出的文本,显示了在尝试使用Docker运行`hello-world`镜像时遇到的错误。以下是核心内容的整理:
1. 用户尝试执行的命令是:
```
sudo docker run hello-world
```2. Docker无法在本地找到`hello-world:latest`镜像。
3. Docker尝试从Docker Hub的`library/hello-world`仓库拉取镜像。
4. 拉取过程中遇到了网络连接问题,具体错误信息是:
```
c1ec31eb5944: Retrying in 1 second
docker: error pulling image configuration: download failed after attempts=6: dial tcp 192.133.77.59:443: connect: connection refused.
```5. 错误提示用户查看`docker run --help`以获取更多帮助信息。
这表明用户在尝试拉取Docker镜像时,由于网络连接问题(连接被拒绝),导致无法成功下载`hello-world`镜像。可能的原因包括网络配置问题、Docker Hub服务器问题,或者本地防火墙/安全设置阻止了连接。
说到底就是拉取镜像的时候又去一个类似墙外的地方了,这里归类为拉取镜像失败问题。根据上面的参考链接就可以解决了。或是直接引用下面的命令。
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": [
"https://ox288s4f.mirror.aliyuncs.com",
"https://registry.docker-cn.com",
"http://hub-mirror.c.163.com",
"https://mirror.ccs.tencentyun.com"
]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
或者
sudo service docker restart
到这里离线手动安装docker就基本结束了。下面就是一些其他设置的内容了。
3.基础设置
1.设置开机启动
sudo systemctl enable docker.service
2.关闭开机启动
sudo systemctl disable docker.service
3.查看是否设置开机启动
sudo systemctl list-unit-files
| grep enable
4.将当前登录用户添加到docker
sudo groupadd docker #添加docker用户组
sudo gpasswd -a $USER docker #将登陆用户加入到docker用户组中
newgrp docker #更新用户组
docker ps #测试docker命令是否可以使用sudo正常使用
5.从Docker仓库拉取docker镜像文件
docker image pull library/hello-world
6.抓取成功后可以在docker容器中查看镜像文件
#将当前用户添加到docker用户组后可用此命令,否则加sudo
docker image ls
7.运行镜像文件
docker container run hello-world
4.官方教程失败过程
4.1 更新软件
4.2 安装依赖包
sudo apt-get install apt-transport-https ca-certificates curl gnupg2 software-properties-common
4.3 添加密钥
在这里就已经是翻墙出去拿文件了,因为是一个文件,作者也理解的来,就直接搜网址去拿回来放到对应路径下了。
打开Ubuntu终端,输入以下命令更新软件包列表: sudo apt-get update 输入以下命令,安装open-vm-tools软件包: sudo apt-get install open-vm-tools-desktop 等待安装完成后,重启Ubuntu虚拟机即可实现与Windows之间的复制粘贴功能.
4.4 建立稳定仓库
这里使用的命令行作者就不太懂了,本来也想如法炮制的,但是不理解建立仓库是什么意思,拿来的文件又要放哪里,以及文件会不会在环境变量中做出更改,所以就放弃了,于是就出现了如下的连接不上和仓库没有Release 文件。有懂这个原理的朋友可以教教咱嘛。
sudo add-apt-repository “deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable
sudo add-apt-repository \ "deb [arch=amd64] https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/ubuntu \ $(lsb_release -cs) \ stable"
另一个问题:E: 仓库 “https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/ubuntu \ Release” 没有 Release 文件。
N: 无法安全地用该源进行更新,所以默认禁用该源。
至此作者由于找了很多资料都解决不了,也没理解到底这个东西底层逻辑牵涉到什么,就放弃了,走上了离线安装的路,也算是成功安装下来了。