|
@ -37,15 +37,66 @@ |
|
|
|
|
|
|
|
|
> 一个开放源代码项目,通过在Linux上提供**OS级虚拟化**的附加抽象层和自动化层,使**容器**内软件应用程序的部署自动化。 |
|
|
> 一个开放源代码项目,通过在Linux上提供**OS级虚拟化**的附加抽象层和自动化层,使**容器**内软件应用程序的部署自动化。 |
|
|
|
|
|
|
|
|
##### 简单来说,Docker是一种工具,它使开发人员,系统管理员等可以轻松地在沙盒(称为*容器*)中部署其应用程序,以在主机操作系统(即Linux)上运行。Docker的主要好处是,它允许用户将**具有所有依赖关系的应用程序打包到**用于软件开发**的标准化单元**中。与虚拟机不同,容器不具有高开销,因此可以更有效地利用基础系统和资源。 |
|
|
|
|
|
|
|
|
#### 简单来说,Docker是一种工具,它使开发人员,系统管理员等可以轻松地在沙盒(称为*容器*)中部署其应用程序,以在主机操作系统(即Linux)上运行。Docker的主要好处是,它允许用户将**具有所有依赖关系的应用程序打包到**用于软件开发**的标准化单元**中。与虚拟机不同,容器不具有高开销,因此可以更有效地利用基础系统和资源。 |
|
|
|
|
|
|
|
|
#### 2. 在Linux上安装Docker环境 |
|
|
#### 2. 在Linux上安装Docker环境 |
|
|
|
|
|
|
|
|
> 直到几个版本之前,在OSX和Windows上运行Docker还是很麻烦的。但是,最近,Docker已投入大量资金来改善其用户在这些OS上的入职体验,因此,现在运行Docker是一个轻而易举的事。 |
|
|
> 直到几个版本之前,在OSX和Windows上运行Docker还是很麻烦的。但是,最近,Docker已投入大量资金来改善其用户在这些OS上的入职体验,因此,现在运行Docker是一个轻而易举的事。 |
|
|
|
|
|
|
|
|
##### 这里只介绍如何在Linux上安装和运行Docker, 如果同学们想要在其他系统上尝试使用Docker,可以参考Docker官网给出的教程(如何在[Mac](https://docs.docker.com/docker-for-mac/install)、[Linux](https://docs.docker.com/install/linux/docker-ce/ubuntu)或[Windows]([Windows](https://docs.docker.com/docker-for-windows/install))上使用Docker) |
|
|
|
|
|
|
|
|
#### 这里只介绍如何在Linux上安装和运行Docker, 如果同学们想要在其他系统上尝试使用Docker,可以参考Docker官网给出的教程(如何在[Mac](https://docs.docker.com/docker-for-mac/install)、[Linux](https://docs.docker.com/install/linux/docker-ce/ubuntu)或[Windows]([Windows](https://docs.docker.com/docker-for-windows/install))上使用Docker) |
|
|
|
|
|
|
|
|
|
|
|
#### a) 安装docker |
|
|
|
|
|
|
|
|
|
|
|
#### b) 测试Docker是否安装成功 |
|
|
|
|
|
|
|
|
|
|
|
#### 当你的按照上述步骤安装完docker之后,可以通过运行如下命令来测试docker是否安装成功 |
|
|
|
|
|
|
|
|
|
|
|
```bash |
|
|
|
|
|
$ docker run hello-world |
|
|
|
|
|
|
|
|
|
|
|
Hello from Docker. |
|
|
|
|
|
This message shows that your installation appears to be working correctly. |
|
|
|
|
|
... |
|
|
|
|
|
``` |
|
|
|
|
|
|
|
|
|
|
|
#### . 尝试使用busybox |
|
|
|
|
|
|
|
|
|
|
|
> 到此为止,你的docker环境已经安装完成并且正常运行,接下来我们尝试一些更加复杂的工作 |
|
|
|
|
|
|
|
|
|
|
|
#### 在这个部分,我们将要通过`docker run`命令去开启一个`BusyBox container` |
|
|
|
|
|
|
|
|
|
|
|
#### 首先,我们通过运行如下命令从互联网拉取`BusyBox Image`: |
|
|
|
|
|
|
|
|
|
|
|
```bash |
|
|
|
|
|
$ docker pull busybox |
|
|
|
|
|
``` |
|
|
|
|
|
|
|
|
|
|
|
> 如果运行过程中遇到 **permission denied** 此类的错误,可以尝试在命令前加入 **sudo** 命令 |
|
|
|
|
|
|
|
|
|
|
|
#### **pull** 命令可以将`busybox image`从docker仓库中拉取到本地,你可以使用**docker image**命令查看系统上目前已有的**image. |
|
|
|
|
|
|
|
|
|
|
|
```bash |
|
|
|
|
|
$ docker images |
|
|
|
|
|
|
|
|
|
|
|
REPOSITORY TAG IMAGE ID CREATED VIRT |
|
|
|
|
|
busybox latest c51f86c28340 4 weeks ago 1.10 |
|
|
|
|
|
``` |
|
|
|
|
|
|
|
|
|
|
|
#### 我们接下来继续尝试使用`docker run`命令来运行`busybox` |
|
|
|
|
|
|
|
|
|
|
|
```bash |
|
|
|
|
|
$ docker run busybox |
|
|
|
|
|
$ |
|
|
|
|
|
``` |
|
|
|
|
|
|
|
|
|
|
|
#### 可以发现命令运行完,什么也没有发生。这不是bug,当我们执行`docker run`命令时,docker会从本地查找`image`,然后加载`image`并在容器中运行command。让我们加入自定义的command再试一次 |
|
|
|
|
|
|
|
|
|
|
|
```bash |
|
|
|
|
|
$ docker run busybox echo "hello from busybox" |
|
|
|
|
|
hello from busybox |
|
|
|
|
|
``` |
|
|
|
|
|
|
|
|
|
|
|
**************作业1:请将上述涉及docker run/image的操作界面截图,并插入实验报告中*************** |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|