在Ubuntu上安装Docker Engine(Docker引擎)

前提条件

操作系统要求

要安装Docker Engine,您需要以下Ubuntu版本之一的64位版本:

  • Ubuntu Eoan 19.10
  • Ubuntu Bionic 18.04(LTS)
  • Ubuntu Xenial 16.04(LTS)

Docker Engine都支持x86_64 (or amd64), armhfarm64s390x (IBM Z), and ppc64le (IBM Power) 架构.。

卸载旧版本

Docker 的旧版本被称为dockerdocker.iodocker-engine。如果已安装,请卸载它们:

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

如果apt-get报告未安装这些软件包,则可以。

/var/lib/docker/的内容(包括图像,容器,卷和网络)被保留。现在将Docker Engine软件包称为docker-ce

安装方法

您可以根据需要以不同的方式安装Docker Engine:

  • 大多数用户会 设置Docker的存储库并从中进行安装,以简化安装和升级任务。这是推荐的方法。

  • 一些用户下载并手动安装 DEB软件包, 并完全手动管理升级。这在诸如在无法访问互联网的空白系统上安装Docker的情况下非常有用。

  • 在测试和开发环境中,一些用户选择使用自动 便利脚本来安装Docker。

使用存储库安装

在新主机上首次安装Docker Engine之前,需要设置Docker存储库。之后,您可以从存储库安装和更新Docker。

设置存储库

更新apt软件包索引并安装软件包以允许apt通过HTTPS使用存储库:

$ sudo apt-get update

$ 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 -
 

9DC8 5822 9FC7 DD38 854A  E2D8 8D81 803C 0EBF CD88通过搜索指纹的后8个字符,验证您现在是否拥有带有指纹的密钥 。

$ 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) 
sub   rsa4096 2017-02-22 [S]
 

使用以下命令来设置稳定的存储库。要添加 每晚或测试存储库,请在以下命令中的单词后面添加nightlytest(或同时添加)stable

注意:下面的lsb_release -cs子命令返回Ubuntu发行版的名称,例如xenial。有时,在Linux Mint等发行版中,您可能需要更改$(lsb_release -cs) 为父Ubuntu发行版。例如,如果您使用 Linux Mint Tessa,则可以使用bionic。Docker对未经测试和不受支持的Ubuntu发行版不提供任何保证。

 x86_64/amd64架构命令

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

安装DOCKER引擎 

更新apt程序包索引,并安装最新版本的Docker Engine和容器,或转到下一步以安装特定版本:

$ sudo apt-get update
 $ sudo apt-get install docker-ce docker-ce-cli containerd.io

要安装特定版本的Docker Engine,请在存储库中列出可用版本,然后选择并安装:

一个。列出您的仓库中可用的版本:

在Ubuntu上安装Docker Engine(Docker引擎)_第1张图片

使用第二列中的版本字符串安装特定版本,例如5:19.03.9~3-0~ubuntu-xenial(最新即可)

$ sudo apt-get install docker-ce= docker-ce-cli= containerd.io
即如下5:19.03.9~3-0~ubuntu-xenial命令:
$ sudo apt-get install docker-ce=5:19.03.9~3-0~ubuntu-xenial docker-ce-cli=5:19.03.9~3-0~ubuntu-xenial containerd.io

 通过运行hello-world 映像来验证是否正确安装了Docker Engine 。

$ sudo docker run hello-world

 此命令下载测试图像并在容器中运行。容器运行时,它会打印参考消息并退出。

在Ubuntu上安装Docker Engine(Docker引擎)_第2张图片

扩展:docker安装home-assistant命令

docker run --init -d --name="home-assistant" -e "TZ=America/New_York" -v /PATH_TO_YOUR_CONFIG:/config --net=host homeassistant/home-assistant:stable

您需要替换/PATH_TO_YOUR_CONFIG为配置路径,例如,如果您选择配置路径为/home/hanhui/homeassistant,则命令将为:

docker run --init -d --name="home-assistant" -e "TZ=America/New_York" -v /home/hanhui/homeassistant:/config --net=host homeassistant/home-assistant:stable

 

使用systemd自动启动home-assistant

/etc/systemd/system/home-assistant@YOUR_USER.service

YOUR_USER替换为Home Assistant将以其运行的用户帐户(通常为homeassistant)。尤其是Ubuntu 16.04。

如果您想使用Docker,以下模板应该适合您。

 

[Unit]
Description=Home Assistant
Requires=docker.service
After=docker.service

[Service]
Restart=always
RestartSec=3
ExecStart=/usr/bin/docker run --name=home-assistant-%i -v /home/%i/.homeassistant/:/config -v /etc/localtime:/etc/localtime:ro --net=host homeassistant/home-assistant
ExecStop=/usr/bin/docker stop -t 2 home-assistant-%i
ExecStopPost=/usr/bin/docker rm -f home-assistant-%i

[Install]
WantedBy=multi-user.target

 

 

您需要重新加载systemd以使守护程序知道新配置。

sudo systemctl --system daemon-reload
 

要使Home Assistant在启动时自动启动,请启用该服务。

sudo systemctl enable home-assistant@YOUR_USER
 

要禁用自动启动,请使用此命令。

sudo systemctl disable home-assistant@YOUR_USER
 

要立即启动Home Assistant,请使用此命令。

sudo systemctl start home-assistant@YOUR_USER
 

您也可以用start上面的内容替换stop为停止Home Assistant,restart重新启动Home Assistant和“状态”以查看简短的状态报告,如下所示。

hanhui@hanhui-virtual-machine:~$ sudo systemctl status home-assistant@hanhui 
[email protected]
   Loaded: loaded (/etc/systemd/system/[email protected]; enabled; vendor preset: enabled)
   Active: active (running) since 二 2020-05-19 16:30:30 CST; 45min ago
  Process: 4336 ExecStopPost=/usr/bin/docker rm -f home-assistant-%i (code=exited, status=0/SUCCESS)
  Process: 4251 ExecStop=/usr/bin/docker stop -t 2 home-assistant-%i (code=exited, status=0/SUCCESS)
 Main PID: 4352 (docker)
   CGroup: /system.slice/system-home\x2dassistant.slice/[email protected]
           └─4352 /usr/bin/docker run --name=home-assistant-hanhui -v /home/hanhui/.homeassistant/:/config -v /etc/localtime:/etc/localtime:ro --net=host homeassistant/home
...

要获得家庭助理的日志记录输出,请简单使用journalctl

sudo journalctl -f -u home-assistant@YOUR_USER
 

由于日志可以快速滚动,因此您可以选择仅查看错误行:

sudo journalctl -f -u home-assistant@YOUR_USER | grep -i 'error'
 

使用Home Assistant时,您可以轻松地重新启动系统,然后通过使用以下命令组合上述命令来查看日志输出 &&

sudo systemctl restart home-assistant@YOUR_USER && sudo journalctl -f -u home-assistant@YOUR_USER
 

失败时自动重新启动HOME ASSISTANT

如果要在崩溃后自动重新启动Home Assistant服务,请将以下行添加到[Service]单元文件的部分:

Restart=on-failure
RestartSec=5s

 

 

 

 

你可能感兴趣的:(Docker)