ubuntu 安装docker环境_ubuntu 16.04安装docker教程

ubuntu 安装docker环境_ubuntu 16.04安装docker教程

Docker是一种开源软件工具,旨在使用称为容器的环境自动化并简化创建,打包和部署应用程序的过程。使用Linux容器部署应用程序称为容器化。容器使我们可以将应用程序与运行该应用程序所需的所有部分(代码,系统工具,日志,库,配置设置和其他依赖项)打包在一起,并作为可通过Ubuntu部署的单个独立程序包发送出去(在这种情况下, 16.04 LTS)。Docker也可以安装在其他 平台上。当前,Docker软件由Docker社区和Docker Inc.维护。查看官方文档在Docker上找到更多细节。Docker术语和概念。

Docker由几个组件组成:

  • Docker for Linux:在Ubuntu Linux操作系统上运行Docker容器的软件。

  • Docker Engine:用于构建Docker映像和创建Docker容器。

  • Docker Registry:用于存储各种Docker映像。

  • Docker Compose:用于定义使用多个Docker容器的应用程序。

您将接触到的其他一些基本术语和概念是:

  • 容器化:容器化是完整机器虚拟化(如VMWare)的轻型替代方案,它涉及将应用程序封装在具有其自身操作环境的容器中。

Docker还使用图像和容器。这两个想法是密切相关的,但是却截然不同。

  • 多克尔图片:阿泊坞图片是用于部署多克尔容器的基本单位。Docker映像本质上是容器的静态快照,其中包含运行容器所需的所有对象。
  • 码头工人集装箱:一个码头工人集装箱封装码头工人形象,当它是生活和运行的,它被认为是一个容器。每个容器在主机中隔离运行。
  • 码头工人注册地:该泊坞窗注册表是一个无状态的,高度可扩展的服务器端应用程序,存储和分发泊坞的图像。该注册表保存Docker映像及其版本,并且可以提供公共和私有存储位置。有一个名为Docker Hub的公共Docker注册表,它提供免费使用的托管注册表,以及组织帐户,自动构建等附加功能。用户通过使用Docker push或pull命令与注册表进行交互。例:

docker pull registry-1.docker.io/distribution/registry:2.1.

  • Docker Engine:Docker Engine是存在于容器和Linux内核之间并运行容器的一层。它也称为Docker守护程序。任何Docker容器都可以在启用了Docker-daemon的任何服务器上运行,而不管其底层操作系统是什么。
  • Docker Compose:Docker Compose是定义,管理和控制多容器Docker应用程序的工具。使用Compose,可以使用一个配置文件来设置应用程序的所有服务。然后,您可以使用单个命令从该文件创建并启动所有服务。
  • Dockerfiles:Dockerfiles只是文本文档(.yaml文件),其中包含组装容器映像所需的所有配置信息和命令。使用Dockerfile,Docker守护程序可以自动构建容器映像。示例:以下是一个基本的Dockerfile,该文件在容器中设置了SSHd服务,我们可以使用该服务连接到容器并检查其他容器的卷,或者快速访问测试容器。

FROM ubuntu:16.04

RUN apt-get update && apt-get install -y openssh-server

RUN mkdir /var/run/sshd

RUN echo 'root:THEPASSWORDYOUCREATED' | chpasswd

RUN sed -i 's/PermitRootLogin prohibit-password/PermitRootLogin yes/' /etc/ssh/sshd_config

# SSH login fix. Otherwise user is kicked off after login

RUN sed 's@sessions*requireds*pam_loginuid.so@session optional pam_loginuid.so@g' -i /etc/pam.d/sshd

ENV NOTVISIBLE "in users profile"

RUN echo "export VISIBLE=now" >> /etc/profile

EXPOSE 22

CMD ["/usr/sbin/sshd", "-D"]

Docker版本

可以使用三种版本的Docker,每种版本都有其独特的用途:

  • Docker CE是简单,经典的Docker引擎。
  • Docker EE是Docker CE,在某些系统上具有认证并得到Docker Inc.的支持。
  • Docker CS(Commercially Supported)是Docker EE的旧捆绑版本的一种,版本小于等于1.13。

我们将安装Docker CE。

Docker安装说明

步骤1 —检查先决条件

首先,从以下服务器环境开始: 

  1. 64位Ubuntu VPS  服务器
  2. 以root用户身份登录

重要:

Ubuntu上的Docker需要64位体系结构才能安装,Linux内核版本必须为3.10或更高版本。

在安装Docker之前,我们需要设置 包含最新版本软件的  存储库(标准Ubuntu 16.04存储库中不提供Docker)。添加存储库使我们以后也可以轻松地更新软件。

第2步-安装Docker

下一步是在Linux VPS上安装Docker之前,从现有系统中删除所有默认Docker软件包  执行以下命令以启动此过程: 

root@test:~# apt-get remove docker docker-engine docker.io lxc-docker

Reading package lists... Done

Building dependency tree

Reading state information... Done

Package 'docker-engine' is not installed, so not removed

Package 'docker' is not installed, so not removed

Package 'docker.io' is not installed, so not removed

E: Unable to locate package lxc-docker

注意:

在某些情况下,通过删除不太常用的模块(或驱动程序)来缩小Linux内核的特定变体。在这种情况下,“ linux-image-extra”软件包将包含所有被遗漏的“额外”内核模块。使用以下命令重新添加它们:

root@test:~# sudo apt-get install linux-image-extra-$(uname -r) linux-image-extra-virtual

步骤3 —添加所需的软件包

现在,我们需要在您的系统上安装一些必需的软件包。 运行以下命令以完成此操作:

root@test:~# apt-get install curl apt-transport-https ca-certificates software-properties-common

注意:

如果出现错误:“ E:无法找到包装卷曲”,请使用命令“ curl -V”查看是否已安装curl;如果是这样,请继续执行步骤4。

步骤4 —验证,添加和更新存储库

将Docker GPG密钥添加到您的系统:

root@test:~# curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

OK

接下来,更新APT源以添加源:

root@test:~# add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu xenial stable" | tee /etc/apt/sources.list.d/docker.list

再次运行更新,以便识别Docker软件包:

root@test:~# apt-get update

Get:1 http://security.ubuntu.com/ubuntu xenial-security InRelease [107 kB]

Hit:2 http://us.archive.ubuntu.com/ubuntu xenial InRelease

Get:3 http://us.archive.ubuntu.com/ubuntu xenial-updates InRelease [109 kB]

Get:4 http://us.archive.ubuntu.com/ubuntu xenial-backports InRelease [107 kB]

Fetched 323 kB in 0s (827 kB/s)

Reading package lists... Done

E: The method driver /usr/lib/apt/methods/https could not be found.

N: Is the package apt-transport-https installed?

E: Failed to fetch https://download.docker.com/linux/ubuntu/dists/xenial/InRelease

E: Some index files failed to download. They have been ignored, or old ones used instead.

注意:

如果收到以上错误:“ N:是否安装了apt-transport-https软件包?”,请使用以下命令更正此错误。

root@test:~# sudo apt-get install apt-transport-https

让我们重新运行更新:

root@test:~# apt-get update

Hit:1 http://us.archive.ubuntu.com/ubuntu xenial InRelease

Get:2 http://security.ubuntu.com/ubuntu xenial-security InRelease [107 kB]

Get:3 http://us.archive.ubuntu.com/ubuntu xenial-updates InRelease [109 kB]

Get:4 http://us.archive.ubuntu.com/ubuntu xenial-backports InRelease [107 kB]

Hit:5 https://download.docker.com/linux/ubuntu xenial InRelease

Fetched 323 kB in 0s (656 kB/s)

Reading package lists... Done

成功!现在,验证我们是从正确的存储库而不是默认的Ubuntu 16.04存储库安装Docker:

root@test:~# apt-cache policy docker-ce

docker-ce:

Installed: (none)

Candidate: 18.06.0~ce~3-0~ubuntu

Version table:

18.06.0~ce~3-0~ubuntu 500

500 https://download.docker.com/linux/ubuntu xenial/stable amd64 Packages

第5步—安装Docker

最后,让我们开始Docker安装:

root@test:~# apt-get install -y docker-ce

Reading package lists... Done

Building dependency tree

Reading state information... Done

The following additional packages will be installed:

aufs-tools cgroupfs-mount libltdl7 pigz

Suggested packages:

mountall

The following NEW packages will be installed:

aufs-tools cgroupfs-mount docker-ce libltdl7 pigz

0 upgraded, 5 newly installed, 0 to remove and 0 not upgraded.

Need to get 40.3 MB of archives.

After this operation, 198 MB of additional disk space will be used.

Get:1 http://us.archive.ubuntu.com/ubuntu xenial/universe amd64 pigz amd64 2.3.1-2 [61.1 kB]

Get:2 http://us.archive.ubuntu.com/ubuntu xenial/universe amd64 aufs-tools amd64 1:3.2+20130722-1.1ubuntu1 [92.9 kB]

Get:3 http://us.archive.ubuntu.com/ubuntu xenial/universe amd64 cgroupfs-mount all 1.2 [4,970 B]

Get:4 http://us.archive.ubuntu.com/ubuntu xenial/main amd64 libltdl7 amd64 2.4.6-0.1 [38.3 kB]

Get:5 https://download.docker.com/linux/ubuntu xenial/stable amd64 docker-ce amd64 18.06.0~ce~3-0~ubuntu [40.1 MB]

Fetched 40.3 MB in 1s (38.4 MB/s)

...

...

现在应该安装Docker,启动守护程序,并启用启动过程。让我们检查一下它是否正在运行:

root@test:~# systemctl status docker

* docker.service - Docker Application Container Engine

Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)

Active: active (running) since Wed 2018-08-08 13:51:22 EDT; 2min 13s ago

Docs: https://docs.docker.com

Main PID: 6519 (dockerd)

CGroup: /system.slice/docker.service

|-6519 /usr/bin/dockerd -H fd://

`-6529 docker-containerd --config /var/run/docker/containerd/containerd.toml

Aug 08 13:51:22 test.docker.com dockerd[6519]: time="2018-08-08T13:51:22.192600502-04:00" level=info msg="ClientConn switching balancer to "pick_first"" module=grpc

Aug 08 13:51:22 test.docker.com dockerd[6519]: time="2018-08-08T13:51:22.192630873-04:00" level=info msg="pickfirstBalancer: HandleSubConnStateChange: 0xc42020f6a0, CONNECTING" module=grpc

Aug 08 13:51:22 test.docker.com dockerd[6519]: time="2018-08-08T13:51:22.192854891-04:00" level=info msg="pickfirstBalancer: HandleSubConnStateChange: 0xc42020f6a0, READY" module=grpc

Aug 08 13:51:22 test.docker.com dockerd[6519]: time="2018-08-08T13:51:22.192867421-04:00" level=info msg="Loading containers: start."

Aug 08 13:51:22 test.docker.com dockerd[6519]: time="2018-08-08T13:51:22.340349000-04:00" level=info msg="Default bridge (docker0) is assigned with an IP address 172.17.0.0/16. Daemon option --bip can be used to set a preferred IP address"

Aug 08 13:51:22 test.docker.com dockerd[6519]: time="2018-08-08T13:51:22.397715134-04:00" level=info msg="Loading containers: done."

Aug 08 13:51:22 test.docker.com dockerd[6519]: time="2018-08-08T13:51:22.424005987-04:00" level=info msg="Docker daemon" commit=0ffa825 graphdriver(s)=overlay2 version=18.06.0-ce

Aug 08 13:51:22 test.docker.com dockerd[6519]: time="2018-08-08T13:51:22.424168214-04:00" level=info msg="Daemon has completed initialization"

Aug 08 13:51:22 test.docker.com dockerd[6519]: time="2018-08-08T13:51:22.448805942-04:00" level=info msg="API listen on /var/run/docker.sock"

Aug 08 13:51:22 test.docker.com systemd[1]: Started Docker Application Container Engine.

~

~

~

(press q to quit)

如果安装后未自动启动Docker ,请运行以下命令:

root@test:~# systemctl start docker.service

root@test:~# systemctl enable docker.service

第6步—测试Docker

让我们通过下载hello-world测试映像来检查新的Docker构建。

要开始测试,请发出以下命令:

root@test:~# docker run hello-world

Unable to find image 'hello-world:latest' locally

latest: Pulling from library/hello-world

9db2ca6ccae0: Pull complete

Digest: sha256:4b8ff392a12ed9ea17784bd3c9a8b1fa3299cac44aca35a85c90c5e3c7afacdc

Status: Downloaded newer image for hello-world:latest

Hello from Docker!

This message shows that your installation appears to be working correctly.

为了生成此消息,Docker采取了以下步骤:

  1. Docker客户端联系了Docker守护程序。
  2. Docker守护程序从Docker Hub中提取了“ hello-world”映像。

    (amd64)

  3. Docker守护程序从该映像创建了一个新容器,该容器运行可执行文件,该可执行文件会生成您当前正在读取的输出。
  4. Docker守护程序将该输出流式传输到Docker客户端,该客户端将其发送到您的终端。

要尝试更具野心的东西,可以使用以下命令运行Ubuntu容器:

$ 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/engine/userguide/

步骤7 —“ Docker”命令

安装并运行Docker之后,现在是时候熟悉命令行实用程序了。“ Docker”命令包括使用带有一系列选项和参数的Docker。语法采用以下形式:

root@test:~# docker

Usage: docker [OPTIONS] COMMAND

A self-sufficient runtime for containers

Run 'docker COMMAND --help' for more information on a command.

要查看所有可用的选项和管理命令,只需键入:

docker

要查看可用于特定命令的开关,请键入:

docker docker-subcommand --help

最后,要查看有关Docker的系统范围信息,请使用:

docker info

Docker是一个动态,健壮且响应迅速的工具,使在容器化环境中运行应用程序变得非常简单。它具有可移植性,不占用资源,并且更依赖于允许多种用途的主机操作系统。总体而言,Docker是一个“必备”系统,应包含在您的工具包中,以实现应用程序的自动化,部署和扩展!

以上是 ubuntu 安装docker环境_ubuntu 16.04安装docker教程 的全部内容, 来源链接: utcz.com/wiki/669638.html

回到顶部