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. Bootatrap常用样式

    1. 使div固定定位在页面的底部: // 当然, 需要加上自己的样式稍加修饰<div class="navbar navbar-fixed-bottom mobile-view-bo ...

  2. Java中为什么long能自动转换成float类型

    刷题时候看到一个float和long相互转换的问题,float向long转换的时候不会报错,一个4个字节一个8个字节,通过baidu找到了答案. 下面转载自http://blog.csdn.net/s ...

  3. String类详解

    看了很多文章事实证明之前的通过new创建String对象只有一个是错误的,实际上创建一个或者创建两个对象,一个在堆区,一个在常量池,当常量池中已经存在就不会创建.看了一篇非常好的文章http://ww ...

  4. AngularJS复习-----内置过滤器和内置服务

    AngularJS中的内置服务(共30多个): $http 发送http请求,主要用于进行异步数据请求的功能实现,这个服务主要封装了XMLHttpRequest对象和JSONP数据访问模式来完成远程请 ...

  5. javascript里的循环语句

    前序:我一直对于for跟for..in存在一种误解,我觉得for都能把事情都做了,为啥还要for...in...这玩意了,有啥用,所以今天就说说JavaScript里的循环语句. 循环 要计算1+2+ ...

  6. c++ --> cin和cout输入输出格式

    cin和cout输入输出格式 Cout 输出 1>. bool型输出 cout << true <<" or " << false < ...

  7. centos安装postgis

      step 1   yum localinstall https://download.postgresql.org/pub/repos/yum/9.2/redhat/rhel-7-x86_64/p ...

  8. 第一次使用github、git工具,本地仓库、远程仓库使用

    一次使用git,记录下使用过程...可能还有很多东西可能还没理解,后期理解了再写吧 git是什么.,百度的回答: 一:Git是什么? Git是目前世界上最先进的分布式版本控制系统. 使用过程一直在百度 ...

  9. RedHat/Fedora/Centos 下bash 自动补全命令

    本文转自:运维生存时间:http://www.ttlsa.com/linux/rhel- ... matically-function/ linuser  :http://www.linuser.co ...

  10. sql模糊查询效率

    在数据库量比较大的时候通常有一些查询,例如查询文本类型的数据,存储量大,用like进行模糊查询效率实在太低 select * from stdcontent where  content like ' ...