如何在Ubuntu 18.04 LTS服务器中安装Docker
Docker是一个快速,轻量级和操作系统级虚拟化技术,用于开发人员和系统管理员,他们想要与所有必需的依赖项构建应用程序,并将其作为一个包运送。
与其他虚拟化方法(例如VMware,Xen和VirtualBox)不同,每个虚拟机都不需要单独的客户机操作系统。
所有Docker容器都有效地共享主机操作系统的内核。
每个容器都将在同一操作系统中的隔离用户空间中运行。
Docker容器也将在任何Linux变体上运行。
让我们说你在Fedora工作,我正在使用ubuntu。
我们仍然可以彼此开发,共享和分发Docker图像。
我们不必担心操作系统,软件,自定义设置或者任何内容。
只要我们在我们的主机系统中安装了Docker,我们就可以继续开发。
简单地说,它会在任何地方工作!
我们在上述段落中阅读了两种术语即Docker图像和Docker容器。
你可能想知道,他们实际上是什么,它们之间有什么区别?
在Layman的术语中,Docker Image是一个文件,描述了容器如何表现,而Docker容器是Docker图像的正在运行(或者停止)状态。
希望你有一个关于Docker的基本想法。
有关更多详细信息,请参阅官方Docker用户教程。
该链接在本教程的末尾附上。
现在让我们继续,看看如何在Ubuntu 18.04 LTS服务器版中安装Docker。
Docker要求
要安装和配置Docker,系统必须满足以下最低要求。
- 64位Linux或者Windows操作系统;
- 如果我们在Linux上,内核版应为3.10或者更高版本。
- 系统应与互联网连接。
在Linux中,要验证内核和架构详细信息,请从终端运行以下命令:
$uname -a
示例输出:
Linux ubuntuserver 4.15.0-91-generic #92-Ubuntu SMP Fri Nov 28 11:09:48 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
如上所述,我的Ubuntu系统的内核版本为4.15.0-91通用,我的Ubuntu系统的架构是64位(x86_64 x86_64 x86_64 gnu/linux)。
检查上面的结果中的粗体字母。
嗯,内核版本高于最低要求,拱门是64位。
因此,我们可以在没有任何问题的情况下安装和使用Docker。
请注意,我们使用的Ubuntu操作系统并不重要。
此外,无论我们使用ubuntu桌面或者ubuntu服务器版还是任何其他Ubuntu变体,如Lubuntu,Kubuntu,Xubuntu,Docker都会工作,只要我们拥有内核版本3.10+,系统的拱门就可以正常工作64位。
在Ubuntu 18.04 LTS安装Docker
首先,更新Ubuntu系统。
为此,请打开终端,然后逐个运行以下命令:
$sudo apt-get update
$sudo apt-get upgrade
官方Ubuntu存储库中不可用Docker。
所以我们将添加Docker存储库以获取最新版本的Docker。
首先,安装必要的证书并允许APT包管理器使用命令使用https使用存储库:
$sudo apt-get install apt-transport-https ca-certificates curl gnupg-agent software-properties-common
接下来,添加Docker的官方GPG密钥:
$curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add
通过搜索指纹的最后8个字符,验证密钥是否已添加指纹9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88:
$sudo apt-key fingerprint 0EBFCD88
我们应该看到如下所示的输出。
pub rsa4096 2016-02-22 [SCEA] 9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88 uid [ unknown] Docker Release (CE deb) <Hyman@theitroad> sub rsa4096 2016-02-22 [S]
添加Docker官方存储库:
$sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
最后,运行以下命令在Ubuntu 18.04 LTS服务器中安装最新的Docker CE:
$sudo apt-get install docker-ce docker-ce-cli containerd.io
当然,我们也可以安装特定的Docker版本。
要检查可用的Docker版本列表,请运行:
$apt-cache madison docker-ce
示例输出:
docker-ce | 5:19.03.8~3-0~ubuntu-bionic | https://download.docker.com/linux/ubuntu bionic/stable amd64 Packages docker-ce | 5:19.03.7~3-0~ubuntu-bionic | https://download.docker.com/linux/ubuntu bionic/stable amd64 Packages docker-ce | 5:19.03.6~3-0~ubuntu-bionic | https://download.docker.com/linux/ubuntu bionic/stable amd64 Packages docker-ce | 5:19.03.5~3-0~ubuntu-bionic | https://download.docker.com/linux/ubuntu bionic/stable amd64 Packages docker-ce | 5:19.03.4~3-0~ubuntu-bionic | https://download.docker.com/linux/ubuntu bionic/stable amd64 Packages docker-ce | 5:19.03.3~3-0~ubuntu-bionic | https://download.docker.com/linux/ubuntu bionic/stable amd64 Packages docker-ce | 5:19.03.2~3-0~ubuntu-bionic | https://download.docker.com/linux/ubuntu bionic/stable amd64 Packages docker-ce | 5:19.03.1~3-0~ubuntu-bionic | https://download.docker.com/linux/ubuntu bionic/stable amd64 Packages docker-ce | 5:19.03.0~3-0~ubuntu-bionic | https://download.docker.com/linux/ubuntu bionic/stable amd64 Packages docker-ce | 5:18.09.9~3-0~ubuntu-bionic | https://download.docker.com/linux/ubuntu bionic/stable amd64 Packages docker-ce | 5:18.09.8~3-0~ubuntu-bionic | https://download.docker.com/linux/ubuntu bionic/stable amd64 Packages docker-ce | 5:18.09.7~3-0~ubuntu-bionic | https://download.docker.com/linux/ubuntu bionic/stable amd64 Packages docker-ce | 5:18.09.6~3-0~ubuntu-bionic | https://download.docker.com/linux/ubuntu bionic/stable amd64 Packages docker-ce | 5:18.09.5~3-0~ubuntu-bionic | https://download.docker.com/linux/ubuntu bionic/stable amd64 Packages docker-ce | 5:18.09.4~3-0~ubuntu-bionic | https://download.docker.com/linux/ubuntu bionic/stable amd64 Packages docker-ce | 5:18.09.3~3-0~ubuntu-bionic | https://download.docker.com/linux/ubuntu bionic/stable amd64 Packages docker-ce | 5:18.09.2~3-0~ubuntu-bionic | https://download.docker.com/linux/ubuntu bionic/stable amd64 Packages docker-ce | 5:18.09.1~3-0~ubuntu-bionic | https://download.docker.com/linux/ubuntu bionic/stable amd64 Packages docker-ce | 5:18.09.0~3-0~ubuntu-bionic | https://download.docker.com/linux/ubuntu bionic/stable amd64 Packages docker-ce | 18.06.3~ce~3-0~ubuntu | https://download.docker.com/linux/ubuntu bionic/stable amd64 Packages docker-ce | 18.06.2~ce~3-0~ubuntu | https://download.docker.com/linux/ubuntu bionic/stable amd64 Packages docker-ce | 18.06.1~ce~3-0~ubuntu | https://download.docker.com/linux/ubuntu bionic/stable amd64 Packages docker-ce | 18.06.0~ce~3-0~ubuntu | https://download.docker.com/linux/ubuntu bionic/stable amd64 Packages docker-ce | 18.03.1~ce~3-0~ubuntu | https://download.docker.com/linux/ubuntu bionic/stable amd64 Packages
我们可以从上面的列表中选择任何可用版本并安装它。
例如,要安装版本5:18.09.2~3-0~Ubuntu-Bionic,运行:
$sudo apt install docker-ce=5:18.09.2~3-0~ubuntu-bionic docker-ce-cli=5:18.09.2~3-0~ubuntu-bionic containerd.io
安装后,验证Docker服务是否使用命令运行:
$systemctl status docker
你会看到下面的输出。
● docker.service - Docker Application Container Engine Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled) Active: active (running) since Fri 2017-04-10 10:39:00 UTC; 3min 40s ago Docs: https://docs.docker.com Main PID: 14610 (dockerd) Tasks: 8 CGroup: /system.slice/docker.service └─14610 /usr/bin/dockerd -H fd://--containerd=/run/containerd/containerd.sock Apr 10 10:38:55 ubuntuserver dockerd[14610]: time="2017-04-10T10:38:55.800086650Z" level=warning msg="Your kernel does not support swap memory limit" Apr 10 10:38:55 ubuntuserver dockerd[14610]: time="2017-04-10T10:38:55.801329697Z" level=warning msg="Your kernel does not support cgroup rt period" Apr 10 10:38:55 ubuntuserver dockerd[14610]: time="2017-04-10T10:38:55.801659115Z" level=warning msg="Your kernel does not support cgroup rt runtime" Apr 10 10:38:55 ubuntuserver dockerd[14610]: time="2017-04-10T10:38:55.802348633Z" level=info msg="Loading containers: start." Apr 10 10:38:57 ubuntuserver dockerd[14610]: time="2017-04-10T10:38:57.965216155Z" level=info msg="Default bridge (docker0) is assigned with an IP address 172.17.0.0/16. Apr 10 10:38:58 ubuntuserver dockerd[14610]: time="2017-04-10T10:38:58.779021136Z" level=info msg="Loading containers: done." Apr 10 10:38:59 ubuntuserver dockerd[14610]: time="2017-04-10T10:38:59.283684712Z" level=info msg="Docker daemon" commit=afacb8b7f0 graphdriver(s)=overlay2 version=19.03. Apr 10 10:38:59 ubuntuserver dockerd[14610]: time="2017-04-10T10:38:59.286277513Z" level=info msg="Daemon has completed initialization" Apr 10 10:39:00 ubuntuserver systemd[1]: Started Docker Application Container Engine. Apr 10 10:39:00 ubuntuserver dockerd[14610]: time="2017-04-10T10:39:00.306773751Z" level=info msg="API listen on /var/run/docker.sock"
Docker服务已启动并运行!
如果尚未启动,请运行以下命令以启动它。
$sudo systemctl start docker
启用Docker服务将在每次重新启动时自动启动:
$sudo systemctl enable docker
可以使用命令找到已安装的Docker版本:
$sudo docker version
示例输出:
Client: Docker Engine - Community Version: 19.03.8 API version: 1.40 Go version: go1.12.17 Git commit: afacb8b7f0 Built: Wed Mar 11 01:25:46 2017 OS/Arch: linux/amd64 Experimental: false Server: Docker Engine - Community Engine: Version: 19.03.8 API version: 1.40 (minimum version 1.12) Go version: go1.12.17 Git commit: afacb8b7f0 Built: Wed Mar 11 01:24:19 2017 OS/Arch: linux/amd64 Experimental: false containerd: Version: 1.2.13 GitCommit: 7ad184331fa3e55e52b890ea95e65ba581ae3429 runc: Version: 1.0.0-rc10 GitCommit: dc9208a3303feef5b3839f4323d9beb36df0a9dd docker-init: Version: 0.18.0 GitCommit: fec3683
测试Docker.
让我们继续前进,并测试Docker是否正常工作。
为此,运行:
$sudo docker run hello-world
上面的命令将下载测试Docker镜像,并在容器中执行一个示例hello_world程序。
如果我们看到如下所示, Docker在Ubuntu系统中正常工作。
Unable to find image 'hello-world:latest' locally latest: Pulling from library/hello-world 1b930d010525: Pull complete Digest: sha256:f9dfddf63636d84ef479d645ab5885156ae030f611a56f3a7ac7f2fdd86d7e4e Status: Downloaded newer image for hello-world:latest Hello from Docker! This message shows that your installation appears to be working correctly. To generate this message, Docker took the following steps: 1. The Docker client contacted the Docker daemon. 2. The Docker daemon pulled the "hello-world" image from the Docker Hub. (amd64) 3. The Docker daemon created a new container from that image which runs the executable that produces the output you are currently reading. 4. The Docker daemon streamed that output to the Docker client, which sent it to your terminal. To try something more ambitious, you can run an Ubuntu container with: $docker run -it ubuntu bash Share images, automate workflows, and more with a free Docker ID: https://hub.docker.com/ For more examples and ideas, visit: https://docs.docker.com/get-started/
Docker已准备好使用。
在Linux中运行Docker作为非root用户
默认情况下,Docker守护程序绑定到UNIX套接字而不是TCP端口。
由于UNIX套接字由root用户拥有,因此Docker守护程序仅作为root用户运行。
因此,普通用户无法执行大多数Docker命令。
在Ubuntu安装Docker Compose
Docker Compose是一种工具,可用于定义和运行多容器Docker应用程序。
使用Compose,我们使用Compose文件配置应用程序的服务。
然后,使用单个命令,我们可以从配置中创建和启动所有服务。
我们可以使用以下方法中的任何一种安装Docker撰写。
方法1:
从此处下载最新的Docker Compose。
首先,最新版本为1.25.5.
运行以下命令下载最新的稳定Docker Compose文件:
$sudo curl -L "https://github.com/docker/compose/releases/download/1.25.5/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
如果新版本可用,只需使用新版本编号替换上面命令中的数字1.25.5.
最后,使用命令应用于二进制的可执行权限:
$sudo chmod +x /usr/local/bin/docker-compose
方法2:
或者,我们可以使用pip安装Docker组合。
PIP是一个Python包管理器,用于安装以Python编程语言编写的应用程序。
安装后,运行以下命令以安装Docker-compose。
所有Linux发行版的以下命令都相同!
$pip install docker-compose
安装Docker Compose后,可以使用命令查看版本:
$docker-compose --version
我们将看到下面的输出。
docker-compose version 1.25.5, build 8a1c60f6
我们已成功安装Docker Community Edition和Docker Compose。