Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。

本教程主要分以下几点内容:

一. 使用docker toolbox安装docker

二. 使用docker引擎在容器中运行镜像

三. 创建自己的docker镜像并且在容器中运行它

----------------------------------------------------------------------------------------

三. 创建自己的docker镜像并且在容器中运行它

在上一个教程中,我们在Docker容器中运行了whalesay镜像,但我们每次运行whalesay镜像的时候,如:

docker run docker/whalesay cowsay boo-boo

我们都不得不在后面添加cowsay boo-boo,才能使的whale能够打印出对应的话boo-boo。

在这次教程中,我们将对whalesay镜像做一些修改,创建我们自己的docker镜像并且在容器中运行它,使得能够让whale每次都自动说一句话出来

第一步:打开终端

(1)在你的桌面中找到Docker Quickstart Terminal图标

(2)双击图标启动Docker Quickstart Terminal

先不要关闭终端,我们将使用它来创建文件和运行一些命令

第二步:编写一个Dockerfile文件

在这一步中,你将使用windows的记事本来编写一个简单的Dockerfile。 Dockerfile文件描述了当我们启动镜像的时候需要哪些软件元素。除了软件元素之外,Dockerfile还能够让我们能够在启动镜像的时候在容器中运行一些命令或者指明我们使用什么样的环境。

(1) 在终端中输入 cd Desktop 转到桌面

(2) 输入 mkdir testdocker 在桌面上创建一个testdocker文件夹

(3) 输入 cd testdocker 进入testdocker文件夹

(4) 输入 touch Dockerfile 创建一个Docker文件在当前目录。注意这里的Dockerfile的首字母是大写的(因为Linux文件名是大小写敏感的)

(5) 输入 notepad Dockerfile& 使用windows的记事本打开Dockerfile文件(注意最后面有一个 ‘&’)

(6) 在记事本中输入 FROM docker/whalesay:latest

FORM 关键字告诉Docker我们的镜像将基于哪一个镜像。这个的意思是说我们即将创建的镜像将给予whalesay镜像

(7)现在,加入fortunes程序到我们的景象中

fortunes程序有一个用来打印出一些话的命令,可以用来作为我们的whale说出的话。所以,首先我们需要先安装fortunes。

RUN apt-get -y update && apt-get install -y fortunes

这一行命令使用的是apt-get程序来下载和安装fortunes.

(8) 当你的镜像安装完它需要的软件之后,你就可以命令当镜像被加载之后运行软件

新添加的这一行告诉fortune程序输出它的结果作为输入给cowsay程序(管道)

(9) 保存你的Dockerfile文件

第三步: 用你的Dockerfile文件创建一个镜像

(1) 在终端中运行 docker build -t docker-whale . 命令(注意最后有一个点‘.’,表示Dockerfile文件在当前的目录下),这条命令的意思是利用当前目录下的Dockerfile来创建一个叫做docker-whale的镜像

然后你就会看到一堆输出,最后看到成功地创建了 XXX

第四步:运行你新的docker-whale

在这一步中,你将确认你的电脑已经安装了新的镜像,并且你可以运行这个新的镜像

(1) 在终端中输入 docker images

显示了你本地安装的一些镜像。你可以看到你刚刚创建的docker-whale镜像也在里面

(2) 输入 docker run docker-whale 运行docker-whale镜像

你将看到你的whale自动冒出了一句话出来,并且你每次运行它都会说不同的话。

自此,你已经创建了自己的一个镜像并且成功的运行了!

下一步:

到目前为止,你已经学会了在windows下安装docker已经运行和创建简单的docker镜像。如果想学习更多关于docker的内容的话,可以到官方文档上进行学习。

Windows10下的docker安装与入门 (三) 创建自己的docker镜像并且在容器中运行它的更多相关文章

  1. Windows10下的docker安装与入门 (一)使用docker toolbox安装docker

    Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化.容器是完全使用沙箱机制,相互之间不会有任何 ...

  2. (转)Windows10下的docker安装与入门 (一)使用docker toolbox安装docker

    Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化.容器是完全使用沙箱机制,相互之间不会有任何 ...

  3. Windows10下的docker安装与入门 (二)使用docker引擎在容器中运行镜像

    Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化.容器是完全使用沙箱机制,相互之间不会有任何 ...

  4. windows下nodejs express安装及入门网站,视频资料,开源项目介绍

    windows下nodejs express安装及入门网站,视频资料,开源项目介绍,pm2,supervisor,npm,Pomelo,Grunt安装使用注意事项等总结 第一步:下载安装文件下载地址: ...

  5. DevExpress XtraReports 入门三 创建 Master-Detail(主/从) 报表

    原文:DevExpress XtraReports 入门三 创建 Master-Detail(主/从) 报表 本文只是为了帮助初次接触或是需要DevExpress XtraReports报表的人群使用 ...

  6. 【转载】Docker 安装后 报 Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running? 解决办法

    Docker Docker 安装后 报 Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docke ...

  7. .NetCore下使用IdentityServer4 & JwtBearer认证授权在CentOS Docker容器中运行遇到的坑及填坑

    今天我把WebAPI部署到CentOS Docker容器中运行,发现原有在Windows下允许的JWTBearer配置出现了问题 在Window下我一直使用这个配置,没有问题 services.Add ...

  8. docker安装后出现Cannot connect to the Docker daemon

    启动docker service docker start docker安装后出现Cannot connect to the Docker daemon You need to add user in ...

  9. 在 Docker 容器中运行应用程序

    案例说明 运行 3 个容器,实现对网站的监控. 三个容器的说明: 容器 web: 创建自 nginx 映像,使用 80 端口,运行于后台,实现 web 服务. 容器 mailer: 该容器中运行一个 ...

随机推荐

  1. nodejs中的require,exports使用说明

    模块是一门语言编写大项目的基石,因此,了解如何组织.编写.编译.加载模块很重要.这里主要谈谈Node中的模块加载. 1.Node中的模块,主要使用require来加载模块,文件 require(&qu ...

  2. 数据系统的未来------《Designing Data-Intensive Applications》读书笔记17

    终于来到这本书最后的一章了<Designing Data-Intensive Applications>大部头,这本书应该是我近两年读过最棒的技术书籍.作者Martin Kleppmann ...

  3. 【Python】 零碎知识积累 II

    [Python] 零碎知识积累 II ■ 函数的参数默认值在函数定义时确定并保存在内存中,调用函数时不会在内存中新开辟一块空间然后用参数默认值重新赋值,而是单纯地引用这个参数原来的地址.这就带来了一个 ...

  4. 求逆序对[树状数组] jdoj

    求逆序对 题目大意:给你一个序列,求逆序对个数. 注释:n<=$10^5$. 此题显然可以跑暴力.想枚举1到n,再求在i的后缀中有多少比i小的,统计答案即可.这显然是$n^2$的.这...显然过 ...

  5. 多目标跟踪(MOT)评测标准

    MOT16是多目标跟踪领域非常有名的评测数据集,Ref 1详细阐述了这个数据集的组成以及评测标准(及其评测代码),Ref 2详细地解释了许多标准的由来和考虑,本部分主要介绍MOT任务中常用的评测标准. ...

  6. 指令-arModal-点击提示框模板

    html 使用<ar-modal></ar-modal>: <ar-modal modal-obj="modalObj" ok="newAl ...

  7. 启动django应用报错 “Error: [WinError 10013] 以一种访问权限不允许的方式做了一个访问套接字的尝试。”

    启动django应用时报如下错误 "Error: [WinError 10013] 以一种访问权限不允许的方式做了一个访问套接字的尝试." 网上查了一下,是8000端口被其他程序占 ...

  8. 冲刺NO.7

    Alpha冲刺第七天 站立式会议 项目进展 前期数据库设计所遗留的问题在今天得到了部分的解决,对物资管理所需要的数据内容进行了细化,但并未开始编写物资相关模块,主要精力还是放在项目的核心功能(信用管理 ...

  9. 点击tableViewCell,调用打电话的功能

    对于点击tableViewCell,调用打电话的功能,按照一般的方法,使用Appdelegate的OpenUrl的方法,使用前先使用UIAlertView展示,让用户选择是否拨打,但是发现了个简单的方 ...

  10. hdu 3642 Get The Treasury

    Get The Treasury http://acm.hdu.edu.cn/showproblem.php?pid=3642 Time Limit: 10000/5000 MS (Java/Othe ...