Docker实例教程[超详细](一)
Docker
Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。
Windows
1、 安装docker到我们的电脑,下载地址:


Git工具以前有安装的话,现在就勾去不装。


点击install安装
2、 下载完毕之后我们安装好 然后在桌面上会有一个Docker Quickstart Terminal的快捷方式
,我们双击打开,如果打不开我们右键修改下git地址,这里配置正确的路径。

打开之后就是这个样子的:

这个窗口不能shift+insert键进行粘贴操作,我不太喜欢这样玩,我喜欢直接打开git-bash,

输入命令:
docker-machine ssh default
回车进入docker shell.


我们敲个命令试试docker images 显示所有镜像

ok 镜像全部显示出来了 docker安装这个还是没有什么问题的,至此docker安装完毕。
3、 为了我们能快速拉取docker镜像,我们选择https://account.daocloud.io/signin
国内镜像,用dao命令,这里需要到daocloud.io注册一个账号

还可以用github 微信账号关联登陆:

我已经注册好了,我就直接登陆进去了,登陆之后我们看到首页:

我们点击加速器:

我们点击立即开始:

跳到了我的集群,其实也可以在主界面直接进去到集群里面的,我们选择windows:

前面两步我们已经执行完毕了,我们直接选择安装好了,跳出如下界面,拷贝代码到我们的命令行下执行,我们打开git-bash执行
docker-machine ssh default
,紧接着拷贝下面的代码,每个人的都不一样,注意区别。

执行完毕后,我们就能运行dao命令了,我们打个dao试试。

紧接着我们到我们的daocloud.io里面进入到镜像仓库里面,daocloud(这个列别里面的镜像就在daocloud服务器,很快!)镜像搜索centos,我们点击进去:


看到下面镜像拉取说明,我们拉一下centos7,我们把命令改写成
dao pull daocloud.io/centos:
,这样比较快。

正在多线程拉取拉取!拉取完毕。

我们docker images看看是否拉取成功了。

我们启动容器shell交互,为了简单演示,下面使用yun install 方式搭建一个简单的nginx环境。
我们运行命令:
docker run –i t –name nginx_test[这个名字可以随便起] 904d6c400333[IMAGE ID] /bin/bash
回车

进入到我们的centos容器,我们可以在这个里面搭建docker,搭建完毕之后,通过Dockerfile来build一个镜像,也可以一次性写一个Dockerfile,我们下面采用一次性编写Dockerfile的方式进行。
新建Dockerfile文件,写入如下内容:
FROM daocloud.io/centos: # Install Nginx.
# WORKDIR /etc/yum.repos.d/
ADD nginx.repo /etc/yum.repos.d/
RUN \
yum update -y && \
yum install -y wget && \
# wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo && \
wget -O /etc/yum.repos.d/CentOs-Base.repo http://mirrors.163.com/.help/CentOS7-Base-163.repo && \
yum makecache && \
yum update -y && \
yum install -y vim && \
yum install -y nginx && \
yum install -y net-tools && \
echo "daemon off;" >> /etc/nginx/nginx.conf && \
echo "master_process off;" >> /etc/nginx/nginx.conf
# Define mountable directories.
VOLUME ["/usr/share/nginx", "/etc/nginx/conf.d", "/var/log/nginx"]
# Define working directory.
WORKDIR /etc/nginx
# Define default command.
CMD ["/usr/sbin/nginx"]
# Expose ports.
EXPOSE
EXPOSE
编写nginx.repo文件:
# nginx.repo
[nginx] name=nginx repo
baseurl=http://nginx.org/packages/centos/7/$basearch/
gpgcheck=
enabled=
运行如下命令:
docker build -t nginx:v1 .


打包完成,我们下面运行{docker images}看看镜像有没有生成:

生成好了!
docker run -d -p : nginx:v1

端口也是绑定成功的。

打开浏览器 输入192.168.99.100:8090,看看是否打开了nginx的页面:

因为宿主ip是一个虚拟网卡上的ip所以要通过此ip访问,可以ifconfig查看宿主ip。
我们也可以静态网页为宿主内的地址:
在此之前先停止掉之前的容器,docker ps 查看正在运行的docker,然后docker stop container id。

再次运行命令:
docker run -d -p : -v /logs:/var/log/nginx -v /www:/usr/share/nginx nginx:v1

编写内容

浏览器访问:

至此 docker教程完毕。
Docker实例教程[超详细](一)的更多相关文章
- exe电子书制作教程(超详细)【申明:来源于网络】
exe电子书制作教程(超详细)[申明:来源于网络] 地址:http://wenku.baidu.com/view/0b046907eff9aef8941e0631.html
- MyCat安装与测试教程 超详细!
MyCat安装与测试教程 超详细! MyCat基础知识 一.什么是MYCAT? 1. 一个彻底开源的,面向企业应用开发的大数据库集群 2. 支持事务.ACID.可以替代MySQL的加强版数据库 3. ...
- Python入门教程 超详细1小时学会Python
Python入门教程 超详细1小时学会Python 作者: 字体:[增加 减小] 类型:转载 时间:2006-09-08我要评论 本文适合有经验的程序员尽快进入Python世界.特别地,如果你掌握Ja ...
- Python入门教程 超详细1小时学会Python
Python入门教程 超详细1小时学会Python 本文适合有经验的程序员尽快进入Python世界.特别地,如果你掌握Java和Javascript,不用1小时你就可以用Python快速流畅地写有用的 ...
- windows环境下elasticsearch安装教程(超详细)
一.安装jdk ElasticSearch是基于lucence开发的,也就是运行需要java jdk支持.所以要先安装JAVA环境. 由于ElasticSearch 5.x 往后依赖于JDK 1.8的 ...
- Python入门教程 超详细1小时学会Python(转)
假设我们有这么一项任务:简单测试局域网中的电脑是否连通.这些电脑的ip范围从192.168.0.101到192.168.0.200. 思路:用shell编程.(Linux通常是bash而Windows ...
- python安装图文教程---超详细。。。不过是转的,但有改动
如果你已安装好python,想安装第三方模块,方法详见如下地址: python安装第三方模块教程----marsggbo 1.想要安装Python,首先当然是去Python的官方网站(www.pyth ...
- Tomcat服务器下载、安装、配置环境变量教程(超详细)
请先配置安装好Java的环境,若没有安装,请参照我以下的步骤进行安装! 请先配置安装好Java的环境,若没有安装,请参照我以下的步骤进行安装! 请先配置安装好Java的环境,若没有安装,请参照我以下上 ...
- Matlab2016b破解安装教程——超详细
一.MATLAB是什么 MATLAB :是美国MathWorks公司出品的商业数学软件,用于算法开发.数据可视化.数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simuli ...
随机推荐
- vc2005 编译ACE-6.2.0
vc2005 编译ACE-6.2.0 下载并解压ACE-6.2.0 ftp://download.dre.vanderbilt.edu/previous_versions/ACE-6.2.0.zip ...
- .net datatable 添加一列
dt.Columns.Add("image", Type.GetType("System.String")); foreach (DataRow dr in d ...
- C# 生成二维码并且在中间加Logo
今天做项目的时候有个在生成二维码并且在中间加入Logo的需求,动手试了几把,总感觉效果没有之前写的好,就翻出旧代码,果然还是熟悉的味道,生成一张效果图如下 左边是微信里面的,右边是我自己生成的 原理比 ...
- Thinking in life(1)
There is always one things we donot notice---time ,which is the most important to all of us.By watch ...
- 备份apt目录节省下载时间
备份与清理 * 备份快速设置已下载的部分软件包,以便重装系统再次使用,免去重新下载的时间 tar cizvf backup.tar.gz /var/cache/apt/archives ...
- angular入门系列教程2
主题: 本篇主要介绍下angular里的一些概念,并且在咱们的小应用上加上点料.. 概念(大概了解即可,代码中遇到的会有详细注释): 模板:动态模板,是动态的,直接去处理DOM的,而不是通过处理字符串 ...
- SQLServer调试
1.普通调试 直接点击SSMS客户端上的调试按钮即可 2.存储过程调试 2.1 定义存储过程(以Northwind数据库为例) USE [Northwind] GO /****** Object: S ...
- Maven--(一个坑)在settings.xml文件中添加mirrors导致无法新建Maven项目
这是用新电脑第一次创建Maven项目--当然是一个测试项目.已经差不多忘了该怎样做,所以参考我的博客:http://www.cnblogs.com/wql025/p/4996486.html,这应该是 ...
- 在smarty模板中取不到Cookie的值解决方案
在原生PHP中我们用:setcookie()来设置Cookie变量,用$_COOKIE这个全局变量来读取Cookie.例如 if(!isset($_COOKIE['user'])) { setcook ...
- 01-08-01【Nhibernate (版本3.3.1.4000) 出入江湖】NHibernate中的三种状态
以下属于不明来源资料: 引入 在程序运行过程中使用对象的方式对数据库进行操作,这必然会产生一系列的持久化类的实例对象.这些对象可能是刚刚创建并准备存储的,也可能是从数据库中查询的,为了区分这些对象,根 ...