在Ubuntu15.04上安装Docker的步骤以及基本用法
<p><span><strong>简介</strong></span></p>
<p>
Docker 是一个开源项目,为开发者和系统管理员提供了一个开放的平台,在任何地方通过打包和运行应用程序作为一个轻量级的容器。Docker 在软件容器内自动部署应用程序。Docker 最开始由 Solomon Hykes 作为 dotCloud 一个内部开发项目,一个企业级的 PaaS (platform as a service 服务平台),该软件现在由 Docker 社区和 Docker 公司维护。</p>
<p>
我们可以通过 Docker 官方提供的 KVM 与 Docker 的图片更加形象的知道什么是 Dock:</p>
<p>
<img style="max-width:100%!important;height:auto!important;"title="在Ubuntu15.04上安装Docker的步骤以及基本用法" alt="在Ubuntu15.04上安装Docker的步骤以及基本用法" src="https://zhuji.jb51.net/uploads/img/202305/2d450703de47db2c29f10b15b07743cb.jpg"></p>
<p>
安装 Docker 所需条件:需要 64 位架构的系统和 Linux 3.10 内核或更高版本。这里作者使用了 Ubuntu15.04 系统的 3.19 内核版本。</p>
<p>
<span><strong>一、关于 Docker 再多了解一些</strong></span></p>
<p>
在这里你可以了解到 docker 世界最基本的条件。</p>
<p>
<strong>Docker Images</strong></p>
<p>
Docker image 是 Docker container 最基本的模板。image 通用容器使系统和应用易于安装,Docker image 是用来运行的容器,你可以找到许多 images (多种操作系统和软件已经被安装好了的 Docker)在这里 https://hub.docker.com/。</p>
<p>
<strong>Docker Container</strong></p>
<p>
Docker 容器(Docker Container)是一个 Image,在运行的 Docker image 上读取和写入。Docker 是一个联合的文件系统作为容器后台,容器的任何变化,都将被保存在一个基本 image 新的层上。我们安装应用程序的层就是容器。每个在主机上运行的容器都是独立的,因此,提供了一个安全的应用平台。</p>
<p>
<strong>Docker Registry</strong></p>
<p>
Docker registry 是为 Docker images 提供的库。它提供了公共和私有库。公共 Docker 库被叫做 Docker Hub。这里我们能够上传 push 和 pull 我们自己的 images。</p>
<p>
<span><strong>二、在 Ubuntu 15.04 上安装 Docker</strong></span></p>
<p>
以下我们将指导你如何安装 docker。在安装之前我们需要检查 kernel 版本和操作系统架构。<br>
运行命令:</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterbash" id="highlighter_866583">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="bash functions">uname</code> <code class="bash plain">-a</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
<div class="codetool" id="codetool">
<div class="code_n">
<textarea></textarea>
</div>
</div>
</div>
<p>
<img style="max-width:100%!important;height:auto!important;"title="在Ubuntu15.04上安装Docker的步骤以及基本用法" alt="在Ubuntu15.04上安装Docker的步骤以及基本用法" src="https://zhuji.jb51.net/uploads/img/202305/24ac0b51c16288b8c8c9366371e2a8ca.jpg"></p>
<p>
你可以看到我们使用的是 ubuntu 15.04 64位版本和 kernel 3.19 内核。</p>
<p>
现在运行安装 Docker 的命令:</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterbash" id="highlighter_481220">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="bash functions">sudo</code> <code class="bash plain">apt-get </code><code class="bash functions">install</code> <code class="bash plain">-y docker.io</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
<div class="codetool" id="codetool">
<div class="code_n">
<textarea></textarea>
</div>
</div>
</div>
<p>
等待安装完毕,现在我们使用下面的命令启动 Docker:</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterbash" id="highlighter_678017">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="bash plain">systemctl start docker</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
<div class="codetool" id="codetool">
<div class="code_n">
<textarea></textarea>
</div>
</div>
</div>
<p>
运行系统引导时启用 docker,命令:</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterbash" id="highlighter_632999">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="bash plain">systemctl </code><code class="bash functions">enable</code> <code class="bash plain">docker</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
<div class="codetool" id="codetool">
<div class="code_n">
<textarea></textarea>
</div>
</div>
</div>
<p>
你可能想核对一下 docker 版本:</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterbash" id="highlighter_827414">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="bash plain">docker version</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
<div class="codetool" id="codetool">
<div class="code_n">
<textarea></textarea>
</div>
</div>
</div>
<p>
<img style="max-width:100%!important;height:auto!important;"title="在Ubuntu15.04上安装Docker的步骤以及基本用法" alt="在Ubuntu15.04上安装Docker的步骤以及基本用法" src="https://zhuji.jb51.net/uploads/img/202305/08203aa41b4d533cbeff49cd5856cf5e.jpg"></p>
<p>
现在,docker 已经安装在您的系统上。您可以从 Docker 库先下载 Docker Image 制作的容器。</p>
<p>
<span><strong>三、Docker 的基本用法</strong></span></p>
<p>
在本节中,我将向您介绍 Docker 命令的常用选项。例如如何下载一个 docker image,打造一个容器,以及如何访问容器。<br>
要创建一个新的容器,你应该选择一个基本 image 的操作系统,例如启动 Ubuntu 或者 CentOS 或其他系统。您可以搜索一个</p>
<p>
基本 image 使用 Docker 搜索命令:</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterbash" id="highlighter_880041">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="bash plain">docker search ubuntu</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
<div class="codetool" id="codetool">
<div class="code_n">
<textarea></textarea>
</div>
</div>
</div>
<p>
该命令将显示所有 ubuntu images,你可以自己尝试一下搜索 centos Images。</p>
<p>
<img style="max-width:100%!important;height:auto!important;"title="在Ubuntu15.04上安装Docker的步骤以及基本用法" alt="在Ubuntu15.04上安装Docker的步骤以及基本用法" src="https://zhuji.jb51.net/uploads/img/202305/2541db947689c73f3fe846e71fb8d465.jpg"></p>
<p>
现在我们现在 base image 到我们的服务中,使用命令:</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterbash" id="highlighter_486356">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="bash plain">docker pull ubuntu</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
<div class="codetool" id="codetool">
<div class="code_n">
<textarea></textarea>
</div>
</div>
</div>
<p>
<img style="max-width:100%!important;height:auto!important;"title="在Ubuntu15.04上安装Docker的步骤以及基本用法" alt="在Ubuntu15.04上安装Docker的步骤以及基本用法" src="https://zhuji.jb51.net/uploads/img/202305/f2e7d52d9b3447ad7fc5486f94fd7525.jpg"></p>
<p>
现在,您可以通过使用命令来查看所有已下载的images:</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterbash" id="highlighter_461391">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="bash plain">docker images</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
<div class="codetool" id="codetool">
<div class="code_n">
<textarea></textarea>
</div>
</div>
</div>
<p>
<img style="max-width:100%!important;height:auto!important;"title="在Ubuntu15.04上安装Docker的步骤以及基本用法" alt="在Ubuntu15.04上安装Docker的步骤以及基本用法" src="https://zhuji.jb51.net/uploads/img/202305/0e10c7afcc8b98837222c16b841eaaeb.jpg"></p>
<p>
Ubuntu 镜像从DockerHub/Docker Registry下载。下一步骤是创建从该镜像的容器。</p>
<p>
要创建容器,可以使用docker create 或 docker run 。</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterbash" id="highlighter_767102">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="bash plain">docker create ubuntu:14.04</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
<div class="codetool" id="codetool">
<div class="code_n">
<textarea></textarea>
</div>
</div>
</div>
<p>
docker create 命令会创建一个新的容器,但不会启动它。所以,现在你需要使用运行命令:</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterbash" id="highlighter_347066">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="bash plain">docker run -i -t ubuntu:14.04 </code><code class="bash plain">/bin/bash</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
<div class="codetool" id="codetool">
<div class="code_n">
<textarea></textarea>
</div>
</div>
</div>
<p>
此命令将创建并运行一个基于 Ubuntu14.04 镜像的容器,容器内并运行一个命令/bin/bash,您将在容器内自动运行命令。</p>
<p>
<img style="max-width:100%!important;height:auto!important;"title="在Ubuntu15.04上安装Docker的步骤以及基本用法" alt="在Ubuntu15.04上安装Docker的步骤以及基本用法" src="https://zhuji.jb51.net/uploads/img/202305/57d97564c36bfbc9deac472b2ec2a98f.jpg"></p>
<p>
当你输入 Exit 命令退出容器时,容器也是停止运行,如果你想容器在后台运行需要在命令后面添加 -d 参数。</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterbash" id="highlighter_385291">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
<div class="line number2 index1 alt1">
2</div>
<div class="line number3 index2 alt2">
3</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="bash plain">docker run -i -t -d ubuntu:14.04 </code><code class="bash plain">/bin/sh</code> <code class="bash plain">-c “</code><code class="bash keyword">while</code> <code class="bash functions">true</code><code class="bash plain">; </code><code class="bash keyword">do</code> <code class="bash functions">echo</code> <code class="bash plain">hello world; </code><code class="bash functions">sleep</code> <code class="bash plain">1; </code><code class="bash keyword">done</code><code class="bash plain">” </code>
</div>
<div class="line number2 index1 alt1">
<code class="bash spaces"> </code>
</div>
<div class="line number3 index2 alt2">
<code class="bash plain">/bin/sh</code> <code class="bash plain">-c “</code><code class="bash keyword">while</code> <code class="bash functions">true</code><code class="bash plain">; </code><code class="bash keyword">do</code> <code class="bash functions">echo</code> <code class="bash plain">hello world; </code><code class="bash functions">sleep</code> <code class="bash plain">1; </code><code class="bash keyword">done</code><code class="bash plain">” this is </code><code class="bash functions">bash</code> <code class="bash plain">script to </code><code class="bash functions">echo</code> <code class="bash plain">“hello word” forever.</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
<div class="codetool" id="codetool">
<div class="code_n">
<textarea></textarea>
</div>
</div>
</div>
<p>
现在你可以看到容器在后台运行通过命令:</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterbash" id="highlighter_249406">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="bash plain">docker </code><code class="bash functions">ps</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
<div class="codetool" id="codetool">
<div class="code_n">
<textarea></textarea>
</div>
</div>
</div>
<p>
如果你想从 bash 命令看日志结果,使用命令:</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterbash" id="highlighter_402551">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="bash plain">docker logs NAMES</code><code class="bash plain">/ContainerID</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
<div class="codetool" id="codetool">
<div class="code_n">
<textarea></textarea>
</div>
</div>
</div>
<p>
<img style="max-width:100%!important;height:auto!important;"title="在Ubuntu15.04上安装Docker的步骤以及基本用法" alt="在Ubuntu15.04上安装Docker的步骤以及基本用法" src="https://zhuji.jb51.net/uploads/img/202305/2ce591a3aef44fed5279993cf955ff59.jpg"></p>
<p>
怎样在后台访问容器 shell?这个命令将会连接你的容器 shell:</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterbash" id="highlighter_837371">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="bash plain">docker </code><code class="bash functions">exec</code> <code class="bash plain">-i -t NAMES</code><code class="bash plain">/ContainerID</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
<div class="codetool" id="codetool">
<div class="code_n">
<textarea></textarea>
</div>
</div>
</div>
<p>
<img style="max-width:100%!important;height:auto!important;"title="在Ubuntu15.04上安装Docker的步骤以及基本用法" alt="在Ubuntu15.04上安装Docker的步骤以及基本用法" src="https://zhuji.jb51.net/uploads/img/202305/7abb3b54912640b95c4f0e27f25ece4c.jpg"></p>
<p>
你可以看到主机名和容器ID是相等的,这意味着你在容器shell内。当你在shell 上键入'exit`,会离开的shell,但容器仍在运行。</p>
<p>
你会经常使用的另一个命令是:</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterbash" id="highlighter_652783">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="bash plain">docker stop NAME</code><code class="bash plain">/ContainerID</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
<div class="codetool" id="codetool">
<div class="code_n">
<textarea></textarea>
</div>
</div>
</div>
<p>
这将停止容器而不将其删除,这样你就可以用命令重新启动它:</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterbash" id="highlighter_930844">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="bash plain">docker start NAME</code><code class="bash plain">/ContainerID</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
<div class="codetool" id="codetool">
<div class="code_n">
<textarea></textarea>
</div>
</div>
</div>
<p>
如果你想删除的容器,先停止它,然后用命令将其删除:</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterbash" id="highlighter_682574">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="bash plain">docker </code><code class="bash functions">rm</code> <code class="bash plain">NAME</code><code class="bash plain">/ContainerID</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
<div class="codetool" id="codetool">
<div class="code_n">
<textarea></textarea>
</div>
</div>
</div>
<p>
<span><strong>总结</strong></span></p>
<p>
Docker 现在是越来越火了,有取代 KVM 的趋势,当然我认为还是各有各的优势,以上就是这篇文章的全部内容了,希望本文的内容对大家学习或者使用Docker能有所帮助,如果有疑问大家可以留言交流。</p>
頁:
[1]