首页 > 解决方案 > Ubuntu 16.04 - Docker 已安装但不可用

问题描述

我正在尝试安装docker在 Ubuntu-16.04 服务器上。当我执行sudo apt-get install -y docker-ce系统告诉我 docker 已经安装:

$ sudo apt-get install -y docker-ce
Reading package lists... Done
Building dependency tree
Reading state information... Done
docker-ce is already the newest version (5:19.03.1~3-0~ubuntu-xenial).
0 upgraded, 0 newly installed, 0 to remove and 133 not upgraded.

并且运行sudo systemctl status docker看起来已经在运行:

$ sudo systemctl status docker
● docker.service - Docker Application Container Engine
   Loaded: loaded (/etc/systemd/system/docker.service; enabled; vendor     preset: enabled)
   Active: active (running) since Wed 2019-08-21 17:26:02 PDT; 24min ago
     Docs: http://docs.docker.com
 Main PID: 14283 (dockerd)
    Tasks: 28
   Memory: 64.7M
      CPU: 1.128s
   CGroup: /system.slice/docker.service
       └─14283 /usr/bin/dockerd

Aug 21 17:26:02 node1 dockerd[14283]: time="2019-08-21T17:26:02.137366865-07:00" level=warning msg="Your kernel does not support cgroup rt period"
Aug 21 17:26:02 node1 dockerd[14283]: time="2019-08-21T17:26:02.137381329-07:00" level=warning msg="Your kernel does not support cgroup rt runtime"
Aug 21 17:26:02 node1 dockerd[14283]: time="2019-08-21T17:26:02.139558576-07:00" level=info msg="Loading containers: start."
Aug 21 17:26:02 node1 dockerd[14283]: time="2019-08-21T17:26:02.229011852-07:00" level=info msg="Default bridge (docker0) is assigned with an IP address 172.17.0.0/16. Daemon option --bip can be used to set a preferred IP address"
Aug 21 17:26:02 node1 dockerd[14283]: time="2019-08-21T17:26:02.264094521-07:00" level=info msg="Loading containers: done."
Aug 21 17:26:02 node1 dockerd[14283]: time="2019-08-21T17:26:02.317824839-07:00" level=warning msg="Not using native diff for overlay2, this may cause degraded performance for building images: opaque flag erroneously copied up, consider u
Aug 21 17:26:02 node1 dockerd[14283]: time="2019-08-21T17:26:02.318092298-07:00" level=info msg="Docker daemon" commit=74b1e89e8a graphdriver(s)=overlay2 version=19.03.1
Aug 21 17:26:02 node1 dockerd[14283]: time="2019-08-21T17:26:02.318144708-07:00" level=info msg="Daemon has completed initialization"
Aug 21 17:26:02 node1 dockerd[14283]: time="2019-08-21T17:26:02.333727950-07:00" level=info msg="API listen on /var/run/docker.sock"
Aug 21 17:26:02 node1 systemd[1]: Started Docker Application Container Engine.

但是当我尝试运行时,docker-ps我得到了这个错误:

$ docker ps
The program 'docker' is currently not installed. You can install it by typing:
sudo apt install docker.io

也不which docker返回任何东西...

知道这里会发生什么吗?我该如何进一步调试呢?

提前致谢

更新

docker-cli似乎安装到:

sudo apt-get install docker-ce-cli
Reading package lists... Done
Building dependency tree
Reading state information... Done
docker-ce-cli is already the newest version (5:19.03.1~3-0~ubuntu-xenial).
0 upgraded, 0 newly installed, 0 to remove and 133 not upgraded.
cord@node1:~$ which docker

但是docker命令仍然不存在。

这是输出dpkg -L docker-ce

$ dpkg -L docker-ce
/.
/etc
/etc/default
/etc/default/docker
/etc/init.d
/etc/init.d/docker
/etc/init
/etc/init/docker.conf
/lib
/lib/systemd
/lib/systemd/system
/lib/systemd/system/docker.socket
/lib/systemd/system/docker.service
/usr
/usr/bin
/usr/bin/dockerd
/usr/bin/docker-init
/usr/bin/docker-proxy
/usr/share
/usr/share/doc
/usr/share/doc/docker-ce
/usr/share/doc/docker-ce/changelog.Debian.gz
/usr/share/doc/docker-ce/README.md
/var
/var/lib
/var/lib/docker-engine
/var/lib/docker-engine/distribution_based_engine.json

标签: dockerubuntuubuntu-16.04apt

解决方案


我猜你的 docker 的安装由于某种原因没有完成,或者你的步骤不正确,不确定。

我的建议是接下来:

步骤1:删除旧安装

$ apt-get purge docker-ce

Step2:使用便捷脚本安装docker

$ curl -fsSL https://get.docker.com -o get-docker.sh
$ sudo sh get-docker.sh

如果上述方法仍然无法正常工作,您可以为 docker 客户端使用预构建的二进制文件,请参见

  1. 从https://download.docker.com/linux/static/stable/x86_64/下载您需要的版本

  2. 解压下载的包以获取 docker 二进制文件,tar xzvf /path/to/<FILE>.tar.gz

  3. 复制一个名为dockerto的二进制文件/usr/bin,类似于sudo cp docker/docker /usr/bin/

有了上面你的系统中已经准备好了 docker 客户端。


推荐阅读