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. Spring shiro 初次使用小结

    首先引入一段关于shiro的介绍: 开发系统中,少不了权限,目前java里的权限框架有SpringSecurity和Shiro(以前叫做jsecurity),对于SpringSecurity:功能太过 ...

  2. 解决html5 canvas 绘制字体、图片与图形模糊问题

    html5 canvas 绘制字体.图片与图形模糊问题 发生情况 多出现在高dpi设备,这意味着每平方英寸有更多的像素,如手机,平板电脑.当然很多高端台式电脑也有高分辨率高dpi的显示器. canva ...

  3. Java jsoup爬取图片

    jsoup爬取百度瀑布流图片 是的,Java也可以做网络爬虫,不仅可以爬静态网页的图片,也可以爬动态网页的图片,比如采用Ajax技术进行异步加载的百度瀑布流. 以前有写过用Java进行百度图片的抓取, ...

  4. push_back和emplace_back的区别

    emplace_back能就地通过参数构造对象,不需要拷贝或者移动内存,相比push_back能更好地避免内存的拷贝与移动,使容器插入元素的性能得到进一步提升.在大多数情况下应该优先使用emplace ...

  5. [JLOI2014] 松鼠的新家

    Description 松鼠的新家是一棵树,前几天刚刚装修了新家,新家有n个房间,并且有n-1根树枝连接,每个房间都可以相互到达,且俩个房间之间的路线都是唯一的.天哪,他居然真的住在"树&q ...

  6. Maven-07: 插件的自定义绑定

    除了内置绑定以外,用户还能够自己选择将某个插件目标绑定到生命周期的某个阶段上,这种自定义绑定方式能让Maven项目在构建过程中执行更多更富特色的任务. 一个常见的例子是创建项目的源码jar包.内置的插 ...

  7. getPropertyValue 获取CSS样式

    新学习一个js 的方法 getPropertyValue   (实现 js框架中  css 的最终调用的函数),取得元素最终计算出的css 样式 DEMO: <!DOCTYPE html> ...

  8. nginx静态服务器配置

    1. nginx安装 在 Ubuntu 下,可以舍去编译安装的过程,直接 apt-get sudo apt-get install nginx sudo service nginx start 2. ...

  9. 深入学习Redis(1):Redis内存模型

    前言 Redis是目前最火爆的内存数据库之一,通过在内存中读写数据,大大提高了读写速度,可以说Redis是实现网站高并发不可或缺的一部分. 我们使用Redis时,会接触Redis的5种对象类型(字符串 ...

  10. Dynamics 365 for CRM: Sitemap站点图的可视化编辑功能

    Dynamics 365 for CRM 提供了Sitemap站点图的可视化编辑功能 在之前的所有版本中,我们只能通过从系统中导出站点图的XML进行编辑后再导入(容易出错),或使用第三方的Sitema ...