无法在 AWS Linux AMI 上安装 docker

Unable to install docker on AWS Linux AMI

我按照官方 link - official docker installation on centos 的说明在基于 Amazon AMIEC2 实例上安装了 docker .我收到以下错误。

$ sudo yum update
........
$ sudo yum install docker-ce docker-ce-cli containerd.io
........
-------->  Finished Dependency Resolution
Error: Package: 3:docker-ce-19.03.8-3.el7.x86_64 (docker-ce-stable)
           Requires: systemd
Error: Package: 3:docker-ce-19.03.8-3.el7.x86_64 (docker-ce-stable)
           Requires: libsystemd.so.0(LIBSYSTEMD_209)(64bit)
Error: Package: 3:docker-ce-19.03.8-3.el7.x86_64 (docker-ce-stable)
           Requires: container-selinux >= 2:2.74
Error: Package: containerd.io-1.2.13-3.1.el7.x86_64 (docker-ce-stable)
           Requires: systemd
Error: Package: 3:docker-ce-19.03.8-3.el7.x86_64 (docker-ce-stable)
           Requires: libsystemd.so.0()(64bit)
Error: Package: containerd.io-1.2.13-3.1.el7.x86_64 (docker-ce-stable)
           Requires: container-selinux >= 2:2.74

我哪里错了?

A​​mazon AMI 最佳实践是使用他们的安装程序。当然,您可以自由选择最适合您需求的方式:

https://docs.aws.amazon.com/AmazonECS/latest/developerguide/docker-basics.html

弄清楚了,因为我在一个小时前遇到了类似的问题,然后才意识到我做错了:

https://serverfault.com/questions/836198/how-to-install-docker-on-aws-ec2-instance-with-ami-ce-ee-update

使用amazon-linux-extras安装docker

# install
sudo rm /etc/yum.repos.d/docker-ce.repo # if you have already tried in the wrong way
sudo amazon-linux-extras install docker

# enable on boot and start daemon
sudo systemctl enable docker
sudo systemctl start docker

# correct permissions
sudo usermod -a -G docker $USER
newgrp docker
docker ps

图像上下文中的解决方案 - Amazon Linux 2 AMI

可能需要删除他们使用 docker 安装的软件包,前提是 links

使用此处的命令删除所有这些:-

sudo rm /etc/yum.repos.d/docker-ce.repo

并使用AWS给出的link安装dockerhere - https://docs.aws.amazon.com/AmazonECS/latest/developerguide/docker-basics.html

那个link里面的命令内容如下:-

连接到您的实例(Amazon Linux 2 AMI)。

  1. 更新实例上已安装的包和包缓存。

    sudo yum update -y

  2. 安装最新的 Docker 社区版包。

    sudo amazon-linux-extras install docker

  3. 启动Docker服务。

    sudo service docker start

  4. 将 ec2-user 添加到 docker 组,这样您就可以在不使用 sudo 的情况下执行 Docker 命令。

    sudo usermod -a -G docker ec2-user

  5. 注销并重新登录以获取新的 docker 组权限。您可以通过关闭当前的 SSH 终端 window 并在新终端中重新连接到您的实例来完成此操作。您的新 SSH 会话将具有适当的 docker 组权限。

  6. 验证 ec2-user 可以 运行 Docker 命令而无需 sudo。

    docker info

我使用以下 link 安装了 docker。可能这对其他人有帮助

https://docs.aws.amazon.com/AmazonECS/latest/developerguide/docker-basics.html