如何在Ubuntu 18.04上安装Docker

时间:2020-03-05 15:25:21  来源:igfitidea点击:

Docker是一种轻量级操作系统级虚拟化解决方案,允许我们在Orchestration工具的帮助下在单个主机上同时运行多个容器或者在服务器上的船队中运行多个容器。
Docker容器使用内核控制组和名称空间彼此隔离。

在本教程帖子中,我们将查看不同的方法来在Ubuntu 18.04 LTS上安装Docker。

Docker提供了一种基于镜像的部署模型,可以轻松打包应用程序的所有依赖项并跨多个环境共享。
Docker还可以自动部署此Docker环境中的应用程序。
在我们查看Docker的安装和用法之前,让我们在Docker容器世界中定义一些常见的术语。

  • Docker Engine:这是一个服务器守护程序,管理所有Docker对象 - 网络,容器,存储,镜像等。 Docker引擎还提供应用程序使用的REST API与守护程序通信。
  • Docker Image - 镜像是用于在Docker引擎上创建容器的只读模板。
  • 容器 - 这是基于Docker Image的运行实例。每个容器都有一个唯一的ID
  • 注册表 - Docker注册表是已创建的镜像的存储。它可以是受限制的存储库(私有)或者公共存储库。

ubuntu上的Docker安装

有三种方法可以在Ubuntu 18.04上安装Docker,即:

  • 从APT存储库安装Docker
  • 从编译的Debian包装安装Docker
  • 使用自动化脚本安装Docker Edge

1)从APT存储库安装Docker

在我们添加Docker存储库之前,请确保没有较旧的Docker软件包,除非我们要执行升级而不是新的安装。

$sudo apt-get remove docker docker-engine docker.io

请注意,Docker CE包现在称为Docker-CE。

安装依赖性包

要允许APT通过HTTPS使用存储库,请在下面安装包:

$sudo apt-get install  software-properties-common ca-certificates apt-transport-https

安装成功后,继续添加Docker APT存储库。

导入官方Docker GPG密钥

要安装Docker签名包,我们需要导入GPG密钥:

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

添加Docker-CE稳定存储库

现在让我们使用add-apt-repository命令添加Docker存储库。

$ sudo add-apt-repository \
 "deb [arch=amd64] https://download.docker.com/linux/ubuntu \
 $(lsb_release -cs) \
 stable"
Hit:1 http://security.ubuntu.com/ubuntu bionic-security InRelease
Hit:3 https://repos.influxdata.com/ubuntu bionic InRelease 
Get:2 https://download.docker.com/linux/ubuntu bionic InRelease [64.4 kB] 
Hit:4 http://mirrors.digitalocean.com/ubuntu bionic InRelease 
Get:5 http://mirrors.digitalocean.com/ubuntu bionic-updates InRelease [83.2 kB] 
Hit:6 http://mirror.zol.co.zw/mariadb/repo/10.3/ubuntu bionic InRelease 
Get:7 http://mirrors.digitalocean.com/ubuntu bionic-backports InRelease [74.6 kB] 
Hit:8 https://packagecloud.io/grafana/stable/debian stretch InRelease 
Fetched 222 kB in 1s (149 kB/s)
Reading package lists... Done

上面的命令将为/etc/apt/sources.list添加一行

deb [arch=amd64] https://download.docker.com/linux/ubuntu bionic stable

这是Docker包的位置。

更新APT索引并安装Docker

一旦存储到系统中,就会添加到系统中

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

启动并启用服务以启动启动

使用安装成功,我们应该使用SystemCtl命令启动Docker服务。

$sudo systemctl start docker
$sudo systemctl enable docker
$sudo systemctl is-enabled docker
enabled

使用以下内容检查服务的状态:

$sudo systemctl status docker
● docker.service - Docker Application Container Engine
 Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)
 Active: active (running) since Tue 2016-06-05 19:37:30 UTC; 39min ago
 Docs: https://docs.docker.com
 Main PID: 4235 (dockerd)
 Tasks: 18
 CGroup: /system.slice/docker.service
 ├─4235 /usr/bin/dockerd -H fd://
 └─4284 docker-containerd --config /var/run/docker/containerd/containerd.toml
Jun 05 19:37:30 dokcer.theitroad.com  dockerd[4235]: time="2016-06-05T19:37:30.458294292Z" level=warning msg="Your kernel does not support swap memory limit"
Jun 05 19:37:30 docker.theitroad.com dockerd[4235]: time="2016-06-05T19:37:30.458346988Z" level=warning msg="Your kernel does not support cgroup rt period"
Jun 05 19:37:30 docker.theitroad.com dockerd[4235]: time="2016-06-05T19:37:30.458358517Z"

将Docker运行为非root用户

如果我们想使用Docker作为非root用户,我们现在应该考虑将用户添加到"Docker"组,其中包含:

$sudo  getent group docker
docker:x:998:
$sudo usermod -aG docker <username>

例如

$sudo usermod -aG docker jmutai

对于立即组更改而无需注销运行:

$sudo gpasswd -a username groupname

例如

$sudo gpasswd -a jmutai docker

2)安装Docker .deb包

另一种安装方法正在下载Ubuntu 18.04的Docker的最新版本。
此方法的问题是我们每次要升级Docker CE时都需要下载一个新文件。

转到https://download.docker.com/linux/ubuntu/dists/,选择Ubuntu版本,然后浏览到池/稳定/然后选择操作系统架构。

我们需要下载要安装的Docker版本的.deb文件。

运行命令安装包:

$sudo dpkg -i /path/to/package.deb

3)使用脚本安装Docker Edge版本

Docker为get.docker.com提供了用于安装Docker的边缘版本的便利脚本。

不建议使用此版本以用于生产目的,但可用于测试和通用目的。
请注意,脚本需要root或者sudo权限运行:

$curl -fsSL get.docker.com -o get-docker.sh
$sudo sh get-docker.sh

该脚本将为我们做任何一切,无需手动工作。
只有,如果我们想使用Docker作为非root用户,我们现在应该考虑将用户添加到"Docker"组,其中包含:

$sudo usermod -aG docker your-user

检查使用docker版本命令安装的docker版本:

$sudo docker version
Client:
Version: 18.05.0-ce
API version: 1.37
Go version: go1.9.5
Git commit: f150324
Built: Wed Jan 9 22:16:13 2016
OS/Arch: linux/amd64
Experimental: false
Orchestrator: swarm
Server:
Engine:
Version: 18.05.0-ce
API version: 1.37 (minimum version 1.12)
Go version: go1.9.5
Git commit: f150324
Built: Wed Jan 9 22:14:23 2016
OS/Arch: linux/amd64
Experimental: false

在Ubuntu上使用Docker

现在我们拥有我们需要的一切,让我们考虑一些Docker操作来开始。
我们将下载两个Docker镜像,然后从中创建容器。
然后后来破坏这些容器。

默认情况下,Docker镜像从Docker公共存储库下载,无需验证公开共享的镜像所需的身份验证。
让我们下载Ubuntu 18.04和CentOS 7镜像。
Docker Pull命令用于此:

$sudo docker pull ubuntu:18.04
18.04: Pulling from library/ubuntu
a48c500ed24e: Pull complete 
1e1de00ff7e1: Pull complete 
0330ca45a200: Pull complete 
471db38bcfbf: Pull complete 
0b4aba487617: Pull complete 
Digest: sha256:c8c275751219dadad8fa56b3ac41ca6cb22219ff117ca98fe82b42f24e1ba64e
Status: Downloaded newer image for ubuntu:18.04
$sudo docker pull centos:latest
latest: Pulling from library/centos
7dc0dca2b151: Pull complete 
Digest: sha256:b67d21dfe609ddacf404589e04631d90a342921e81c40aeaf3391f6717fa5322
Status: Downloaded newer image for centos:latest

查看可用的镜像:

$sudo  docker images
REPOSITORY     TAG     IMAGE ID C     REATED        SIZE
centos         latest  49f7960eb7e4   22 hours ago  200MB
ubuntu         18.04   452a96d81c30   5 weeks ago   79.6MB

从Docker Image创建一个容器

docker运行命令用于运行Docker容器。
容器是Docker镜像的运行实例。
还可以使用dockerfile创建自定义Docker镜像。

请参阅如何编写自己的dockerfile的链接。

下面的示例将创建一个名为Ubuntu18.04的容器,从Ubuntu 18.04上下载的镜像。

$docker run -it --rm --name ubuntu-cont ubuntu:18.04 /bin/bash
root@f4da5e088c9c:/#

使用的选项是:

  • -it:获取交互式shell会话
  • --rm:这指示Docker在退出时删除容器
  • --Name:用于指定容器的名称。给出的名称是ubuntu-cont
  • Ubuntu:18.04:这是我们正在创建容器的Docker镜像的名称
    -/bin/bash:命令在容器上执行

如果使用Exit命令或者Ctrl + D退出容器shell