即使安装了apt-get,也找不到Docker命令

添加这一点是为了给其他人参考,因为如果有这样的答案,我可以节省10分钟。


我尝试使用ubuntu 14.0LTS virtualbox安装Docker

sudo apt get install docker

然而,当我尝试运行docker时,它给了我以下错误

docker程序当前未安装。你可以通过输入: Sudo apt-get install docker

为什么ubuntu看不到docker?

363760 次浏览

Ubuntu包docker实际上指的是一个GUI应用程序,而不是我们出来寻找的心爱的DevOps工具。

docker的指令可以按照docker页面上的指令执行:https://docs.docker.com/engine/install/ubuntu/

=== UPDATED(感谢@Scott Stensland) ===

现在运行以下安装脚本来获取docker:

curl -sSL https://get.docker.com/ | sudo sh
  • 注意:查看网站上的脚本,并确保在继续之前有正确的链接,因为您正在运行这作为sudo。

这将运行一个安装docker的脚本。注意脚本的最后一部分:

If you would like to use Docker as a non-root user, you should now consider
adding your user to the "docker" group with something like:


sudo usermod -aG docker stens


Remember that you will have to log out and back in for this to take effect!

更新Docker:

sudo apt-get update && sudo apt-get upgrade

要了解更多细节, 参见下面的Docker安装文档或@Scott Stensland的答案

===更新:对于那些不舒服的w/ sudo | sh ===

有些人在评论中提到,像sudo那样任意运行脚本是有风险的。上面的选项是一个方便的脚本从docker使任务简单。然而,对于那些以安全性为重点但不想阅读脚本的人,您可以执行以下操作:

  1. 添加依赖关系
sudo apt-get update; \
sudo apt-get install \
apt-transport-https \
ca-certificates \
curl \
gnupg-agent \
software-properties-common
  1. 添加docker gpg密钥

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

(安全检查,验证密钥指纹9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88

$ sudo apt-key fingerprint 0EBFCD88


pub   rsa4096 2017-02-22 [SCEA]
9DC8 5822 9FC7 DD38 854A  E2D8 8D81 803C 0EBF CD88
uid           [ unknown] Docker Release (CE deb) <docker@docker.com>
sub   rsa4096 2017-02-22 [S]

  1. 设置存储库
sudo add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) \
stable"
  1. 安装码头工人
sudo apt-get update; \
sudo apt-get install docker-ce docker-ce-cli containerd.io

如果你想验证它是否工作,请运行: sudo docker run hello-world < / p >


它这样命名的原因如下: 为什么在ubuntu上安装docker应该是' sudo apt-get install docker.io ' ? < / p >

重要的 - ubuntu包docker是完全不同的东西(避免它):

下面的问题查看什么,如果你有任何包提到docker

dpkg -l|grep docker

如果下面只有match,那么你没有安装docker,下面是一个不相关的包

docker - KDE3/GNOME2 docklet应用程序的系统托盘

如果你确实看到上面,让我们删除它,因为它是错误的docker

Sudo apt-get remove docker #删除错误的docker

如果你看到类似下面的内容,那么你已经安装了docker

 dpkg -l|grep docker


ii  docker-ce                                  5:19.03.13~3-0~ubuntu-focal         amd64        Docker: the open-source application container engine
ii  docker-ce-cli                              5:19.03.13~3-0~ubuntu-focal         amd64        Docker CLI: the open-source application container engine

ubuntu包docker.io没有更新(过时的不使用)


相反,这样做:在linux上执行以下命令安装最新版本的docker:

sudo apt-get install docker-ce

下面是另一种发出安装命令的方法

  sudo curl -sSL https://get.docker.com/ | sh
# sudo curl -sSL https://test.docker.com | sh  # get dev pipeline version
  

下面是一个典型的输出(ubuntu 16.04)

apparmor is enabled in the kernel and apparmor utils were already installed
+ sudo -E sh -c apt-key adv --keyserver hkp://ha.pool.sks-keyservers.net:80 --recv-keys 58118E89F3A912897C070ADBF76221572C52609D
Executing: /tmp/tmp.rAAGu0P85R/gpg.1.sh --keyserver
hkp://ha.pool.sks-keyservers.net:80
--recv-keys
58118E89F3A912897C070ADBF76221572C52609D
gpg: requesting key 2C52609D from hkp server ha.pool.sks-keyservers.net
gpg: key 2C52609D: "Docker Release Tool (releasedocker) <docker@docker.com>" 1 new signature
gpg: Total number processed: 1
gpg:         new signatures: 1
+ break
+ sudo -E sh -c apt-key adv -k 58118E89F3A912897C070ADBF76221572C52609D >/dev/null
+ sudo -E sh -c mkdir -p /etc/apt/sources.list.d
+ dpkg --print-architecture
+ sudo -E sh -c echo deb [arch=amd64] https://apt.dockerproject.org/repo ubuntu-xenial main > /etc/apt/sources.list.d/docker.list
+ sudo -E sh -c sleep 3; apt-get update; apt-get install -y -q docker-engine
Hit:1 http://repo.steampowered.com/steam precise InRelease
Hit:2 http://download.virtualbox.org/virtualbox/debian xenial InRelease
Ign:3 http://dl.google.com/linux/chrome/deb stable InRelease
Hit:4 http://dl.google.com/linux/chrome/deb stable Release
Hit:5 http://archive.canonical.com/ubuntu xenial InRelease
Hit:6 http://mirror.cc.columbia.edu/pub/linux/ubuntu/archive xenial InRelease
Hit:7 http://mirror.cc.columbia.edu/pub/linux/ubuntu/archive xenial-updates InRelease
Hit:8 http://ppa.launchpad.net/me-davidsansome/clementine/ubuntu xenial InRelease
Ign:9 http://repo.mongodb.org/apt/debian wheezy/mongodb-org/3.2 InRelease
Hit:10 http://mirror.cc.columbia.edu/pub/linux/ubuntu/archive xenial-backports InRelease
Hit:11 http://repo.mongodb.org/apt/debian wheezy/mongodb-org/3.2 Release
Hit:12 http://mirror.cc.columbia.edu/pub/linux/ubuntu/archive xenial-security InRelease
Hit:14 http://ppa.launchpad.net/numix/ppa/ubuntu xenial InRelease
Ign:15 http://linux.dropbox.com/ubuntu wily InRelease
Ign:16 http://repo.vivaldi.com/stable/deb stable InRelease
Hit:17 http://repo.vivaldi.com/stable/deb stable Release
Get:18 http://linux.dropbox.com/ubuntu wily Release [6,596 B]
Get:19 https://apt.dockerproject.org/repo ubuntu-xenial InRelease [20.6 kB]
Ign:20 http://packages.amplify.nginx.com/ubuntu xenial InRelease
Hit:22 http://packages.amplify.nginx.com/ubuntu xenial Release
Hit:23 https://deb.opera.com/opera-beta stable InRelease
Hit:26 https://deb.opera.com/opera-developer stable InRelease
Get:28 https://apt.dockerproject.org/repo ubuntu-xenial/main amd64 Packages [1,719 B]
Hit:29 https://packagecloud.io/slacktechnologies/slack/debian jessie InRelease
Fetched 28.9 kB in 1s (17.2 kB/s)
Reading package lists... Done
W: http://repo.mongodb.org/apt/debian/dists/wheezy/mongodb-org/3.2/Release.gpg: Signature by key 42F3E95A2C4F08279C4960ADD68FA50FEA312927 uses weak digest algorithm (SHA1)
Reading package lists...
Building dependency tree...
Reading state information...
The following additional packages will be installed:
aufs-tools cgroupfs-mount
The following NEW packages will be installed:
aufs-tools cgroupfs-mount docker-engine
0 upgraded, 3 newly installed, 0 to remove and 17 not upgraded.
Need to get 14.6 MB of archives.
After this operation, 73.7 MB of additional disk space will be used.
Get:1 http://mirror.cc.columbia.edu/pub/linux/ubuntu/archive xenial/universe amd64 aufs-tools amd64 1:3.2+20130722-1.1ubuntu1 [92.9 kB]
Get:2 http://mirror.cc.columbia.edu/pub/linux/ubuntu/archive xenial/universe amd64 cgroupfs-mount all 1.2 [4,970 B]
Get:3 https://apt.dockerproject.org/repo ubuntu-xenial/main amd64 docker-engine amd64 1.11.2-0~xenial [14.5 MB]
Fetched 14.6 MB in 7s (2,047 kB/s)
Selecting previously unselected package aufs-tools.
(Reading database ... 427978 files and directories currently installed.)
Preparing to unpack .../aufs-tools_1%3a3.2+20130722-1.1ubuntu1_amd64.deb ...
Unpacking aufs-tools (1:3.2+20130722-1.1ubuntu1) ...
Selecting previously unselected package cgroupfs-mount.
Preparing to unpack .../cgroupfs-mount_1.2_all.deb ...
Unpacking cgroupfs-mount (1.2) ...
Selecting previously unselected package docker-engine.
Preparing to unpack .../docker-engine_1.11.2-0~xenial_amd64.deb ...
Unpacking docker-engine (1.11.2-0~xenial) ...
Processing triggers for libc-bin (2.23-0ubuntu3) ...
Processing triggers for man-db (2.7.5-1) ...
Processing triggers for ureadahead (0.100.0-19) ...
Processing triggers for systemd (229-4ubuntu6) ...
Setting up aufs-tools (1:3.2+20130722-1.1ubuntu1) ...
Setting up cgroupfs-mount (1.2) ...
Setting up docker-engine (1.11.2-0~xenial) ...
Processing triggers for libc-bin (2.23-0ubuntu3) ...
Processing triggers for systemd (229-4ubuntu6) ...
Processing triggers for ureadahead (0.100.0-19) ...
+ sudo -E sh -c docker version
Client:
Version:      1.11.2
API version:  1.23
Go version:   go1.5.4
Git commit:   b9f10c9
Built:        Wed Jun  1 22:00:43 2016
OS/Arch:      linux/amd64


Server:
Version:      1.11.2
API version:  1.23
Go version:   go1.5.4
Git commit:   b9f10c9
Built:        Wed Jun  1 22:00:43 2016
OS/Arch:      linux/amd64


If you would like to use Docker as a non-root user, you should now consider
adding your user to the "docker" group with something like:


sudo usermod -aG docker stens


Remember that you will have to log out and back in for this to take effect!

下面是底层详细的安装说明,正如你所看到的,它被捆绑在上面的技术中…上面一行给出的结果如下:

https://docs.docker.com/engine/installation/linux/ubuntulinux/

安装完成后,您可以通过发出命令查看安装了哪些docker包

dpkg -l|grep docker
ii  docker-ce                                  5:19.03.13~3-0~ubuntu-focal         amd64        Docker: the open-source application container engine
ii  docker-ce-cli                              5:19.03.13~3-0~ubuntu-focal         amd64        Docker CLI: the open-source application container engine

现在Docker更新将在您发布时安装

sudo apt-get update
sudo apt-get upgrade

看一看

 ls -latr /etc/apt/sources.list.d/*docker*
-rw-r--r-- 1 root root 202 Jun 23 10:01 /etc/apt/sources.list.d/docker.list.save
-rw-r--r-- 1 root root  71 Jul  4 11:32 /etc/apt/sources.list.d/docker.list




cat /etc/apt/sources.list.d/docker.list


deb [arch=amd64] https://apt.dockerproject.org/repo ubuntu-xenial main

或者更一般地说

cd /etc/apt
grep -r docker *
sources.list.d/docker.list:deb [arch=amd64] https://download.docker.com/linux/ubuntu focal test
sudo apt-get install docker # DO NOT do this

是ubuntu上的另一个库。

使用sudo apt-get install docker-ce来安装正确的docker。

设置存储库

对于Ubuntu 14.04/16.04/16.10/17.04:

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

对于Ubuntu 17.10:

sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu zesty stable"

添加Docker官方GPG密钥:

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

然后安装

$ sudo apt-get update && sudo apt-get -y install docker-ce

如果你想以一种简单的方式安装docker。
类型:< / p >

$sudo apt install docker.io
并且,它将开始安装。
并且,要检查它是否工作,键入:

$docker