ubuntu20.04虚拟机安装docker

登录电脑

我们将会启用 Docker 软件源,导入 GPG key,并且安装软件包。

首先,更新软件包索引,并且安装必要的依赖软件,来添加一个新的 HTTPS 软件源:

lsb_release-a  查看ubuntu版本

sudo apt update
sudo apt install apt-transport-https ca-certificates curl gnupg-agent software-properties-common

使用下面的 curl 导入源仓库的 GPG key:

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

将 Docker APT 软件源添加到你的系统:

sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"

现在,Docker 软件源被启用了,你可以安装软件源中任何可用的 Docker 版本。

ps -p 1来识别 init 系统

 安装最新版本的 Docker Engine-Community

sudo apt install docker-ce

到此安装完成, 可以输入 sudo docker --version 或者 sudo docker run hello-world 测试是否安装成功。

问题1:

sudo docker --version 

返回:Docker version 24.0.7, build afdd53b
sudo docker run hello-world
发生错误:docker: Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?

这个错误表示Docker守护进程(Docker Daemon)没有再系统运行。Docker 守护进程是一个在后台运行的服务,用于管理 Docker 容器和镜像。

解决这个问题的方法是确保 Docker 守护进程正在运行。你可以按照以下步骤来检查和启动 Docker 守护进程:

  1. 检查 Docker 服务状态:

    使用以下命令检查 Docker 服务是否正在运行:

     

    复制代码

    sudo service docker status

    如果 Docker 服务未启动,你可以使用以下命令启动它:

     

    复制代码

    sudo service docker start

    或者,如果你的系统使用 systemd,你可以使用以下命令:

     

    复制代码

    sudo systemctl start docker
  2. 添加用户到 Docker 用户组(可选):

    你也可以将你的用户添加到 Docker 用户组,这样你就不需要每次都使用 sudo 来运行 Docker 命令。使用以下命令将你的用户添加到 Docker 用户组:

     

    复制代码

    sudo usermod -aG docker $USER

    请注意,添加用户到 Docker 用户组后,你需要注销并重新登录以使更改生效。

  3. 重新启动终端:

    重新启动终端会确保你的用户已成功添加到 Docker 用户组或者 Docker 服务已经启动。

在完成上述步骤后,你应该能够使用 sudo docker run hello-world 命令来成功运行 Docker 容器,而不再遇到该错误。如果问题仍然存在,请提供更多关于你的系统和配置的信息,以便更好地帮助你解决问题。

到此安装完成, 可以输入 sudo docker --version 或者 sudo docker run hello-world 测试是否安装成功

如果您想免sudo进入docker的话, 直接输入以下命令,亲测:

以下命令意思就是将用户加入新docker组中,重启docker,切换当前会话到新 group 

sudo groupadd docker
 
sudo gpasswd -a ${USER} docker
 
sudo service docker restart
 
newgrp - docker
注意:最后一步是必须的,否则因为 groups 命令获取到的是缓存的组信息,刚添加的组信息未能生效,所以 docker images 执行时同样有错。

在ubuntu中如何查看初始化系统是哪一个?

在 Ubuntu 中,你可以使用以下命令来查看初始化系统(init system)是哪一个:

bash复制代码

ps -p 1 -o comm=

这个命令会显示 PID 为 1 的进程的名称,而 PID 1 通常是初始化系统的进程。根据输出的结果,你可以确定你的系统使用的是哪个初始化系统。常见的初始化系统包括:

  1. Systemd:大多数现代版本的 Ubuntu 使用 Systemd 作为初始化系统。

  2. Upstart:在一些较早的 Ubuntu 版本中使用过 Upstart,但它已经被 Systemd 取代。

  3. SysV Init:在一些非常古老的 Ubuntu 版本中可能仍然使用 SysV Init。

请注意,随着 Ubuntu 版本的更新,初始化系统也可能会有变化,所以确保查看正确的版本信息。

在使用 SysVinit 作为初始化系统时,如何打开docker?

在使用 SysVinit 作为初始化系统时,你可以通过编写一个启动脚本来启动 Docker 服务。以下是一些通用的步骤,你可以根据你的系统配置稍作调整:

  1. 创建一个新的启动脚本: 使用文本编辑器创建一个新的启动脚本,通常位于 /etc/init.d/ 目录中。你可以使用 sudo 权限来创建这个文件,例如:

    sudo nano /etc/init.d/docker
  2. 编写启动脚本内容: 在这个新创建的文件中,你需要定义如何启动和停止 Docker 服务。以下是一个示例 SysVinit 启动脚本,你可以根据需要进行修改:

    #!/bin/sh ### BEGIN INIT INFO # Provides: docker # Required-Start: $remote_fs $syslog # Required-Stop: $remote_fs $syslog # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: Start Docker at boot time # Description: Enable Docker container runtime ### END INIT INFO # Path to the Docker binary DOCKER_BINARY="/usr/bin/docker" case "$1" in start) echo "Starting Docker..." $DOCKER_BINARY daemon ;; stop) echo "Stopping Docker..." $DOCKER_BINARY stop ;; restart) echo "Restarting Docker..." $DOCKER_BINARY restart ;; *) echo "Usage: $0 {start|stop|restart}" exit 1 ;; esac exit 0

    请确保将 DOCKER_BINARY 变量设置为 Docker 二进制文件的实际路径。

  3. 保存并退出编辑器。

  4. 设置文件权限: 设置新创建的脚本文件为可执行:

    sudo chmod +x /etc/init.d/docker
  5. 启用服务: 使用以下命令将 Docker 服务添加到运行级别中,以便在系统启动时启动:

    sudo update-rc.d docker defaults
  6. 启动 Docker 服务: 使用以下命令来启动 Docker 服务:

    sudo service docker start

现在,Docker 服务应该已经在 SysVinit 初始化系统中启动了。你可以使用 sudo service docker stopsudo service docker restart 和其他相关命令来管理 Docker 服务。请注意,SysVinit 在现代 Linux 发行版中不常见,大多数系统已经迁移到了 Systemd 或其他初始化系统。如果可能的话,建议升级到一个更现代的系统,以获得更好的支持和安全性。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值