Docker接触有一段时间了,但是对于Docker的使用可以说是一点不会。现在要在Docker上部署基于Angular开发的页面。只能一点点积累查找的资料,顺手整理一下,方便后面的回顾。

其中用到的资料:

1. 在docker上运行.NET应用

2. Docker命令介绍及实例

3. Nano命令指南

4. Docker从主机上复制文件的方法

5. Docker之常用命令

6. Docker入门教程(一)介绍 - DockOne.io

7. Docker入门教程(二)命令 - DockOne.io

8. Docker入门教程(三)Dockerfile - DockOne.io

9. Docker入门教程(四)Docker Registry - DockOne.io

10. Docker入门教程(五)Docker安全 - DockOne.io

11. Docker入门教程(六)另外的15个Docker命令 - DockOne.io

12. Docker入门教程(七)Docker API - DockOne.io

13. Docker入门教程(八)Docker Remote API - DockOne.io

14. Docker入门教程(九)10个镜像相关的API - DockOne.io

为ubuntu开启root登陆权限

http://www.cnblogs.com/xcloudbiz/articles/5217370.html

安装Docker

查看系统内核版本,如果版本过低请升级内核,然后安装docker,启动docker,并将docker设置为启动项

$ uname -r
$ sudo apt-get update
$ sudo apt-get install -y docker.io
$ sudo service docker start
$ sudo systemctl enable docker

创建基础镜像

  第一步创建一个docker镜像来安装mono。我们将使用这个作为容器的基本镜像。查看镜像列表,其中是否存在自己需要的镜像。这里用ubuntu作为基础镜像。

  1. docker images

  创建Dockerfile

  1. nano Dockerfile

  将下面打内容复制到Dockerfile,然后根据自己的情况进行修改(#后的内容为注释):

  1. # 基础镜像版本
    FROM ubuntu
    # 作者信息
  2. MAINTAINER king

  3. # 安装wget
  4. RUN apt-get -y -q install wget
    # 添加apt-get源
  5. RUN wget -q http://download.opensuse.org/repositories/home:tpokorra:mono/xUbuntu_12.04/Release.key -O- | apt-key add -
    # 卸载wget
  6. RUN apt-get remove -y --auto-remove wget
    # 添加openSUSE的镜像源列表
  7. RUN sh -c "echo 'deb http://download.opensuse.org/repositories/home:/tpokorra:/mono/xUbuntu_12.04/ /' >> /etc/apt/sources.list.d/mono-opt.list"
  8. RUN apt-get -q update
    # 安装mono
  9. RUN apt-get -y -q install mono-opt

  对上面的内容进行保存

  1. Ctrl + o

  关闭

  1. Ctrl + x

  然后利用Dockerfile来创建镜像:

  1. $ docker build -t ubuntu_docker .

  制作的镜像来检查mono是否安装成功

  1. root@willemKing:docker run -i -t ubuntu_docker bash
  1.  

  检查mono是否安装成功

  1. root@85a5a2d993f7:# /opt/mono/bin/mono --version
    Mono JIT compiler version 3.2.6 (tarball Sat Jan 18 16:48:05 UTC 2014)

  现在mono安装在/opt下并且工作了

运行一个应用程序

  首先我们需要部署一个简单的应用程序,用VisualStudio创建“项目”-“控制台应用程序”,名称“HelloWorld”

  1. using System;
  2. namespace HelloWorld
  3. {
  4. public class Program
  5. {
  6. static void Main(string[] args)
  7. {
  8. var i = 0;
                while (i < 20)
                {
                    Console.WriteLine("Hello Docker World");
                    Thread.Sleep(2000);
                    i ++;
                }
  9. }
  10. }
  11. }

  然后将代码贴入,进行编译。生成的文件在此路径下(右键点击解决方案-在文件资源管理器中打开文件夹),将文件夹复制到虚拟机中的/mnt下,然后在此文件夹下 

创建新的Dockerfile,内容如下,然后保存:

  1. FROM ubuntu_docker
  2. MAINTAINER king
  3. ADD HelloWorld/HelloWorld/bin/Debug .
  4. CMD /opt/mono/bin/mono `ls *.exe | head -1`

注意:这个例子依赖于上边所创建的ubuntu_docker镜像,其中的*.exe的路径在Dockerfile的相对路径下,这里的Dockerfile在mnt下,和拷贝过来的文件在同一路径下,而*.exe的相对路径是~\HelloWorld\HelloWorld\bin\Debug

  1. $ cd HelloWorld/HelloWorld/bin/Debug
    $ ls *.exe | head -1
  2. HelloWorld.exe

CMD命令将简单地使用mono运行中发现的第一个可执行程序来构建输出,让我们创建这个镜像并运行:

  1. $ docker build -t king_hello .
  2. ...
  3. $ docker run king_hello
    Hello Dockerfile World
    Hello Dockerfile World

  已经正常运行了!

WEB应用程序

Docker学习笔记整理的更多相关文章

  1. docker~学习笔记索引

    回到占占推荐博客索引 使用docker也有段时间了,写了不少文章与总结,下面把它整理个目录出来,方便大家去学习与检索! docker~学习笔记索引 docker~linux下的部署和基本命令(2017 ...

  2. docker学习笔记(3)- 镜像

    简介 在docker学习笔记(1)- 架构概述一节中可以看到镜像是docker三大组件之一,可以将Docker镜像类比为虚拟机的模版. 镜像由多个层组成,每层叠加之后从外部看就像一个独立的对象,镜像的 ...

  3. python学习笔记整理——字典

    python学习笔记整理 数据结构--字典 无序的 {键:值} 对集合 用于查询的方法 len(d) Return the number of items in the dictionary d. 返 ...

  4. Docker学习笔记 — 配置国内免费registry mirror

    Docker学习笔记 — 配置国内免费registry mirror Docker学习笔记 — 配置国内免费registry mirror

  5. docker学习笔记1 -- 安装和配置

    技术资料 docker中文官网:http://www.docker.org.cn/ 中文入门课程:http://www.docker.org.cn/book/docker.html docker学习笔 ...

  6. Deep Learning(深度学习)学习笔记整理系列之(五)

    Deep Learning(深度学习)学习笔记整理系列 zouxy09@qq.com http://blog.csdn.net/zouxy09 作者:Zouxy version 1.0 2013-04 ...

  7. docker学习资料整理(持续更新中..)

    docker最近可以说火得一踏糊涂,跟 51大神在交流技术的时候这个东西会多次被提到,当我们还玩vm+linux/freebsd的时候,人家已经上升到更高层次了,这就是差距,感觉好高大上的样子,技术之 ...

  8. Docker学习笔记之一,搭建一个JAVA Tomcat运行环境

    Docker学习笔记之一,搭建一个JAVA Tomcat运行环境 前言 Docker旨在提供一种应用程序的自动化部署解决方案,在 Linux 系统上迅速创建一个容器(轻量级虚拟机)并部署和运行应用程序 ...

  9. Deep Learning(深度学习)学习笔记整理系列之(八)

    Deep Learning(深度学习)学习笔记整理系列 zouxy09@qq.com http://blog.csdn.net/zouxy09 作者:Zouxy version 1.0 2013-04 ...

随机推荐

  1. 『GreenPlum系列』GreenPlum 4节点集群安装(图文教程)

      目标架构如上图   一.硬件评估 cpu主频,核数推荐CPU核数与磁盘数的比例在12:12以上Instance上执行时只能利用一个CPU核资源进行计算,推荐高主频 内存容量 网络带宽重分布操作 R ...

  2. androidstudio 查看源码

    handler.postDelayed(myrunable,10000); ctrl+鼠标左键,点击postDelayed显示(不可以查看源码) ctrl+鼠标左键,点击postDelayed显示(可 ...

  3. 【转载】大数据量传输时配置WCF的注意事项

    WCF传输数据量的能力受到许多因素的制约,如果程序中出现因需要传输的数据量较大而导致调用WCF服务失败的问题,应注意以下配置: 1.MaxReceivedMessageSize:获取或设置配置了此绑定 ...

  4. Cocos2d-JS 自定义loading界面

    [转]http://blog.csdn.net/et_sandy/article/details/41415047 环境: win7 64位 Cocos2d-JS v3.1 Cocos Code ID ...

  5. 处理返回结果(XML)

    var xmlHttp function showUser(str) { xmlHttp=GetXmlHttpObject() if (xmlHttp==null) { alert ("Br ...

  6. LINUX下的拨号利器:wvdial和pppd —— 转载

    wvdial是LINUX下的智能化拨号工具,利用wvdial和ppp可以实现linux下的轻松上网.在整个过程中wvdial的作用是拨号并等待提示,并根据提示输入相应的用户名和密码等认证信息:ppp的 ...

  7. linux 下tomcat catalina.out日志操作

    1. 查看日志 tail -f catalina.out 会动态打印日志. 2. 查看所有日志 less -f catalina.out 打开所有日志后,默认是显示第一页,常用命令用到如下: G:到达 ...

  8. 几种不同的获取url地址的方法

    通过如下的几种方法,您就可以获取访问者访问您的网站的来路,请根据需要选择适合您的方法. 一.C#代码一 string url = Request["referer"]; Respo ...

  9. JQuery Object vs. DOM element

    JQuery Object 和 DOM的区别 HTML DOM 定义了访问和操作HTML文档的标准方法.其中 document 是DOM 树的根对象 ,在浏览器宿主环境中,可以通过JS操作HTML D ...

  10. sp_MSforeachtable使用方法

    1)说明系统存储过程sp_MSforeachtable和sp_MSforeachdb,是微软提供的两个不公开的存储过程,从ms sql 6.5开始.存放在SQL Server的MASTER数据库中. ...