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.04RUN 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 —检查先决条件
首先,从以下服务器环境开始:
- 64位Ubuntu VPS 服务器
- 以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-dockerReading 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 updateGet: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 updateHit: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-cedocker-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-ceReading 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.serviceroot@test:~# systemctl enable docker.service
第6步—测试Docker
让我们通过下载hello-world测试映像来检查新的Docker构建。
要开始测试,请发出以下命令:
root@test:~# docker run hello-worldUnable 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采取了以下步骤:
- Docker客户端联系了Docker守护程序。
- Docker守护程序从Docker Hub中提取了“ hello-world”映像。
(amd64)
- Docker守护程序从该映像创建了一个新容器,该容器运行可执行文件,该可执行文件会生成您当前正在读取的输出。
- Docker守护程序将该输出流式传输到Docker客户端,该客户端将其发送到您的终端。
要尝试更具野心的东西,可以使用以下命令运行Ubuntu容器:
$ docker run -it ubuntu bashShare 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:~# dockerUsage: 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