Bootstrap

Ubuntu22.04安装docker

前言

        先说结论吧,翻不了墙的就放弃按官方指令来了,根本不可能,只会显示连接不上,失败的过程我已经留在下面了,从更新软件起都是,如果有大神能有办法翻过墙去连上,就带我们看看连过去的世界什么样吧,这篇文章主要说的是离线用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: 无法安全地用该源进行更新,所以默认禁用该源。

        至此作者由于找了很多资料都解决不了,也没理解到底这个东西底层逻辑牵涉到什么,就放弃了,走上了离线安装的路,也算是成功安装下来了。

;