可以在任何操作系统上安装Docker,无论是Mac,Windows,Linux还是任何云服务器。Docker 引擎在Linux发行版上运行。 在这里,我们将以Linux Ubuntu Xenial-16.04 [LTS]作为演示安装Docker引擎的过程。
前提条件:
Docker需要两个重要的安装要求:
- 它仅适用于64位Linux安装,注意:是64位的Linux系统。
- 它需要Linux内核版本
3.10
或更高版本。
要查看当前的内核版本,请打开终端并键入uname -r
命令以查看内核版本:
查看内核版本命令如下:
yiibai@ubuntu:~$ uname -r
4.4.0-31-generic
yiibai@ubuntu:~$
查看操作系统是32位还是64位:
yiibai@ubuntu:~$ sudo uname --m
[sudo] password for yiibai:
x86_64
yiibai@ubuntu:~$
更新apt源
按照以下说明更新apt
源。
- 打开一个终端窗口。
- 使用
sudo
命令作为root
用户登录。 - 更新包信息并安装CA证书。
命令:
yiibai@ubuntu:~$ sudo apt-get update
yiibai@ubuntu:~$ sudo apt-get install apt-transport-http ca-certificates
参见下面的屏幕截图 -
- 添加新的GPG密钥,使用以下命令下载密钥。
yiibai@ubuntu:~$ sudo apt-key adv --keyserver hkp://ha.pool.sks-keyservers.net:80 --recv-keys 58118E89F3A912897C070ADBF76221572C52609D
如下所示 -
yiibai@ubuntu:~$ sudo apt-key adv --keyserver hkp://ha.pool.sks-keyservers.net:80 --recv-keys 58118E89F3A912897C070ADBF76221572C52609D
Executing: /tmp/tmp.Eix5oqerzZ/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: public key "Docker Release Tool (releasedocker) <docker@docker.com>" imported
gpg: Total number processed: 1
gpg: imported: 1 (RSA: 1)
yiibai@ubuntu:~$
- 运行以下命令,它将替换文件的操作系统的相应条目。
yiibai@ubuntu:~$ echo "<REPO>" | sudo tee /etc/apt/sources.list.d/docker.list
执行上面命令,输出结果如下 -
yiibai@ubuntu:~$ echo "<REPO>" | sudo tee /etc/apt/sources.list.d/docker.list
<REPO>
yiibai@ubuntu:~$
- 打开文件
/etc/apt/sources.list.d/docker.list
并将以下行粘贴到文件中。
deb http://apt.dockerproject.org/repo ubuntu-xenial main
使用 vi 创建并打开文件 /etc/apt/sources.list.d/docker.list
如下所示 -
yiibai@ubuntu:~$ sudo vi /etc/apt/sources.list.d/docker.list
yiibai@ubuntu:~$
- 现在再次更新apt包索引。
yiibai@ubuntu:~$ sudo apt-get update
执行更新apt包索引,添加 docker 源地址,上面语句执行结果如下 -
yiibai@ubuntu:~$ sudo apt-get update
Get:1 http://apt.dockerproject.org/repo ubuntu-xenial InRelease [48.7 kB]
Get:2 http://security.ubuntu.com/ubuntu xenial-security InRelease [102 kB]
Get:3 http://apt.dockerproject.org/repo ubuntu-xenial/main amd64 Packages [4,177 B]
Hit:4 http://nginx.org/packages/ubuntu xenial InRelease
Hit:5 http://us.archive.ubuntu.com/ubuntu xenial InRelease
Get:6 http://us.archive.ubuntu.com/ubuntu xenial-updates InRelease [102 kB]
Get:7 http://us.archive.ubuntu.com/ubuntu xenial-backports InRelease [102 kB]
Fetched 359 kB in 20s (17.3 kB/s)
Reading package lists... Done
yiibai@ubuntu:~$
- 验证APT是否从正确的仓库中拉出。
yiibai@ubuntu:~$ sudo apt-cache policy docker-engine
上面语句执行结果如下 -
yiibai@ubuntu:~$ sudo apt-cache policy docker-engine
docker-engine:
Installed: (none)
Candidate: 17.05.0~ce-0~ubuntu-xenial
Version table:
17.05.0~ce-0~ubuntu-xenial 500
500 http://apt.dockerproject.org/repo ubuntu-xenial/main amd64 Packages
17.04.0~ce-0~ubuntu-xenial 500
500 http://apt.dockerproject.org/repo ubuntu-xenial/main amd64 Packages
17.03.1~ce-0~ubuntu-xenial 500
500 http://apt.dockerproject.org/repo ubuntu-xenial/main amd64 Packages
... ...
... ...
1.11.0-0~xenial 500
500 http://apt.dockerproject.org/repo ubuntu-xenial/main amd64 Packages
yiibai@ubuntu:~$
- 安装推荐的软件包
yiibai@ubuntu:~$ sudo apt-get install linux-image-extra-$(uname -r) linux-image-extra-virtual
执行上面安装命令,输出结果如下 -
yiibai@ubuntu:~$ sudo apt-get install linux-image-extra-$(uname -r) linux-image- extra-virtual
Reading package lists... Done
Building dependency tree
Reading state information... Done
linux-image-extra-4.4.0-31-generic is already the newest version (4.4.0-31.50).
linux-image-extra-4.4.0-31-generic set to manually installed.
The following additional packages will be installed:
linux-generic linux-headers-4.4.0-78 linux-headers-4.4.0-78-generic
linux-headers-generic linux-image-4.4.0-78-generic
linux-image-extra-4.4.0-78-generic linux-image-generic
Suggested packages:
fdutils linux-doc-4.4.0 | linux-source-4.4.0 linux-tools
Recommended packages:
... ...
... ...
Generating grub configuration file ...
Warning: Setting GRUB_TIMEOUT to a non-zero value when GRUB_HIDDEN_TIMEOUT is set is no longer supported.
Found linux image: /boot/vmlinuz-4.4.0-78-generic
Found initrd image: /boot/initrd.img-4.4.0-78-generic
Found linux image: /boot/vmlinuz-4.4.0-31-generic
Found initrd image: /boot/initrd.img-4.4.0-31-generic
done
Setting up linux-image-generic (4.4.0.78.84) ...
Setting up linux-headers-4.4.0-78 (4.4.0-78.99) ...
Setting up linux-headers-4.4.0-78-generic (4.4.0-78.99) ...
Setting up linux-headers-generic (4.4.0.78.84) ...
Setting up linux-generic (4.4.0.78.84) ...
Setting up linux-image-extra-virtual (4.4.0.78.84) ...
yiibai@ubuntu:~$
安装最新的Docker版本
- 更新apt包索引。
yiibai@ubuntu:~$ sudo apt-get update
执行上面代码,结果如下 -
yiibai@ubuntu:~$ sudo apt-get update
[sudo] password for yiibai:
Hit:1 http://apt.dockerproject.org/repo ubuntu-xenial InRelease
Get:2 http://security.ubuntu.com/ubuntu xenial-security InRelease [102 kB]
Hit:3 http://us.archive.ubuntu.com/ubuntu xenial InRelease
Get:4 http://us.archive.ubuntu.com/ubuntu xenial-updates InRelease [102 kB]
Hit:5 http://nginx.org/packages/ubuntu xenial InRelease
Get:6 http://us.archive.ubuntu.com/ubuntu xenial-backports InRelease [102 kB]
Fetched 306 kB in 9s (31.2 kB/s)
Reading package lists... Done
yiibai@ubuntu:~$
- 安装Docker引擎。
yiibai@ubuntu:~$ sudo apt-get install docker-engine
执行上面代码,结果如下 -
yiibai@ubuntu:~$ sudo apt-get install docker-engine
... ...
... ...
update-alternatives: using /usr/bin/prename to provide /usr/bin/rename (rename) in auto mode
Setting up aufs-tools (1:3.2+20130722-1.1ubuntu1) ...
Setting up cgroupfs-mount (1.2) ...
Setting up libltdl7:amd64 (2.4.6-0.1) ...
Setting up docker-engine (17.05.0~ce-0~ubuntu-xenial) ...
Setting up liberror-perl (0.17-1.2) ...
Setting up git-man (1:2.7.4-0ubuntu1.1) ...
Setting up git (1:2.7.4-0ubuntu1.1) ...
Setting up patch (2.7.5-1) ...
Setting up rename (0.20-4) ...
update-alternatives: using /usr/bin/file-rename to provide /usr/bin/rename (rename) in auto mode
Setting up xz-utils (5.1.1alpha+20120614-2ubuntu2) ...
update-alternatives: using /usr/bin/xz to provide /usr/bin/lzma (lzma) in auto mode
Processing triggers for libc-bin (2.23-0ubuntu3) ...
Processing triggers for systemd (229-4ubuntu7) ...
Processing triggers for ureadahead (0.100.0-19) ...
yiibai@ubuntu:~$
- 启动docker守护进程。
yiibai@ubuntu:~$ sudo service docker start
- 通过运行
hello-world
映像来验证Docker是否正确安装。
yiibai@ubuntu:~$ sudo docker run hello-world
如下面的屏幕截图 -
以上命令下载测试映像并在容器中运行。当容器运行时,它会打印一条消息并退出。