在 Azure 上使用 Docker 运行 DockerMono 镜像

云计算
Docker 是最近相当热门的一个名词,它是一个基于 Linux Container 的轻量化的虚拟技术,而微软也相当积极与 Docker 合作,在 Azure 上支持这个火热的技术,并且提供简单的方式来建立 Docker Host,本文将会介绍如何在 Azure 上使用 Docker运行DockerMono镜像。

Docker 是最近相当热门的一个名词,它是一个基于 Linux Container 的轻量化的虚拟技术,而微软也相当积极与 Docker 合作,在 Azure 上支持这个火热的技术,并且提供简单的方式来建立 Docker Host,本文将会介绍如何在 Azure 上使用 Docker运行DockerMono镜像。

Docker 简介

Docker 是一个开源的项目,主要的特点是能将应用程序包装在一个 LXC (Linux Container) 容器中,当这些应用被包装进容器后,部署、迁移都变得更为简单。与传统的虚拟化技术相比,虚拟机需要安装操作系统才能执行应用程序,而 Container 则不需要安装操作系统就能运行应用程序。Container 技术是一种在 操作系统内的 Kernel 层所打造虚拟运行环境,所以 Container 彼此之间共享了 Host OS 的 Kernel,但通过namespace 区分来达到隔离每个容器的目的。

本文主要着重介绍Azure 对于 Docker 所提供的支持。

在 Azure 上建立 Docker Host

Docker 可以运行在 Linux 操作系统之下,所以如果要在 Azure 上使用 Docker,您也可以自行建立一个Linux VM,并在上面安装 并运行Docker Deamon 。而微软在正式宣布与 Docker 密切合作后,推出了对 Docker 的直接支持,CentOS 7 中 Docker 的安装

Docker 软件包已经包括在默认的 CentOS-Extras 软件源里。因此想要安装 docker,只需要运行下面的 yum 命令:

  1. [root@Mono ~]# yum install docker 

启动 Docker 服务

  1. [root@ Mono ~]# systemctl start docker.service 
  2.  
  3. [root@ Mono ~]# systemctl enable docker.service 

下载官方的 CentOS 镜像到本地

  1. [root@Mono ~]# docker pull centos 
  2.  
  3. centos:latest: The image you are pulling has been verified 
  4.  
  5. 511136ea3c5a: Pull complete 
  6.  
  7. 5b12ef8fd570: Pull complete 
  8.  
  9. 34943839435d: Pull complete 
  10.  
  11. Status: Downloaded newer image for centos:latest 

确认 CentOS 镜像已经被获取:

  1. [root@Mono ~]# docker images centos 
  2.  
  3. REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE 
  4.  
  5. centos latest 34943839435d 13 days ago 224 MB 

运行一个 Docker 容器:

  1. [root@Mono ~]# docker run -i -t centos /bin/bash 
  2.  
  3. [root@5d841f64f6f0 /]# ls /etc 
  4.  
  5. BUILDTIME group nsswitch.conf rpm 
  6.  
  7. DIR_COLORS group- openldap sasl2 
  8.  
  9. DIR_COLORS.256color gshadow opt securetty 
  10.  
  11. DIR_COLORS.lightbgcolor gshadow- os-release security 
  12.  
  13. GREP_COLORS gss pam.d selinux 
  14.  
  15. X11 host.conf passwd services 
  16.  
  17. aliases hostname passwd- shadow 
  18.  
  19. alternatives hosts pkcs11 shadow- 
  20.  
  21. bash_completion.d hosts.allow pki shells 
  22.  
  23. bashrc hosts.deny pm skel 
  24.  
  25. binfmt.d init.d popt.d ssl 
  26.  
  27. centos-release inputrc prelink.conf.d sysconfig 
  28.  
  29. chkconfig.d iproute2 printcap sysctl.d 
  30.  
  31. cron.daily issue profile system-release 
  32.  
  33. cron.hourly issue.net profile.d system-release-cpe 
  34.  
  35. csh.cshrc krb5.conf protocols systemd 
  36.  
  37. csh.login ld.so.conf rc.d terminfo 
  38.  
  39. dbus-1 ld.so.conf.d rc0.d tmpfiles.d 
  40.  
  41. default libaudit.conf rc1.d udev 
  42.  
  43. dracut.conf.d libuser.conf rc2.d virc 
  44.  
  45. environment localtime rc3.d xdg 
  46.  
  47. exports login.defs rc4.d xinetd.d 
  48.  
  49. filesystems logrotate.d rc5.d yum 
  50.  
  51. fstab magic rc6.d yum.conf 
  52.  
  53. gcrypt modules-load.d redhat-release yum.repos.d 
  54.  
  55. gnupg motd resolv.conf 
  56.  
  57. groff mtab rpc 

我们可以看到,CentOS 容器已经被启动,并且我们得到了 bash 提示符。在 docker 命令中我们使用了 "-i 捕获标准输入输出"和 "-t 分配一个终端或控制台"选项。若要断开与容器的连接,输入 exit。

  1. [root@5d841f64f6f0 /]# exit 

Exit

#p#

我们还可以搜索基于 mono的容器。 发现已经有非常多的mono容器,我们开始玩docker mono。

  1. [root@Mono ~]# docker search mono 
  2.  
  3. NAME DESCRIPTION STARS OFFICIAL AUTOMATED 
  4.  
  5. mono Mono is an open source implementation of M... 24 [OK] 
  6.  
  7. akoeplinger/mono-aspnetvnext Image containing everything needed to play... 14 [OK] 
  8.  
  9. monokrome/wine 4 [OK] 
  10.  
  11. monokrome/node 3 [OK] 
  12.  
  13. friism/mono 2 [OK] 
  14.  
  15. benhall/docker-mono Docker file at https://github.com/Ben Hall/... 2 
  16.  
  17. devdiv/ubuntu-mono 1 
  18.  
  19. nacyot/fsharp-mono 1 [OK] 
  20.  
  21. caseyjbenko/docker-mono 1 [OK] 
  22.  
  23. nacyot/csharp-mono 1 [OK] 
  24.  
  25. rexm/mono-docker 1 [OK] 
  26.  
  27. prozachj/docker-mono-aspnetvnext 1 [OK] 
  28.  
  29. clarktlaugh/mono 0 [OK] 
  30.  
  31. marcells/mono 0 [OK] 
  32.  
  33. seif/docker-mono-fastcgi-nginx 0 [OK] 
  34.  
  35. fghedin/docker-mono 0 [OK] 
  36.  
  37. shaunol/mono-owin-webapi 0 [OK] 
  38.  
  39. seif/mono-runit 0 [OK] 
  40.  
  41. timefairy/debian-mono 0 [OK] 
  42.  
  43. shaunol/learning-mono 0 [OK] 
  44.  
  45. rmacdonaldsmith/docker-debian-mono-devel 0 [OK] 
  46.  
  47. misakai/mono Mono and LLVM on Debian 0 
  48.  
  49. bryanayers/centos7-mono-snapshot 0 [OK] 
  50.  
  51. fghedin/docker-mono-hello 0 [OK] 
  52.  
  53. acazau/docker-mono 0 [OK] 
  54.  
  55. andmos/mono Baseimage for Mono-runtime. 0 
  56.  
  57. eflab/mono 0 
  58.  
  59. jbonhag/mono-hosting-wcf 0 [OK] 
  60.  
  61. thachmai/mono-complete 0 [OK] 
  62.  
  63. andrefernandes/docker-mono 0 [OK] 
  64.  
  65. mikehadlow/ubuntu-monoxide-mono-devel 0 [OK] 
  66.  
  67. allunite/mono-base Ubuntu with Mono base image 0 
  68.  
  69. wimperdt/mono-in-docker 0 [OK] 
  70.  
  71. ahmet/docker-mono-build 0 [OK] 
  72.  
  73. pmcgrath/mono 0 
  74.  
  75. allunite/buildimage-mono Drone.io build image for mono apps 0 
  76.  
  77. tomrijntjes/monoculture 0 [OK] 
  78.  
  79. pjvds/mono 0 
  80.  
  81. basecrm/mono 0 
  82.  
  83. monokrome/btsync 0 [OK] 
  84.  
  85. basespace/mono 0 
  86.  
  87. robzhu/mono 0 
  88.  
  89. monokrome/zmq 0 [OK] 
  90.  
  91. bowery/mono 0 
  92.  
  93. wbonner/unity-mono 0 
  94.  
  95. wayneo/mono 0 
  96.  
  97. rwentzel/ubuntu-mono Ubuntu 13.04 with Mono 3.2.3 0 
  98.  
  99. scottrudy/mono 0 
  100.  
  101. haaf/mono-baseline A Mono 3.8 baseline with F# installed . So... 0 
  102.  
  103. monokrome/minecraft 0 [OK] 
  104.  
  105. bryanayers/centos7-mono3.10.0 0 [OK] 
  106.  
  107. tilde/mono 0 
  108.  
  109. junsuzuki/mono 0 
  110.  
  111. virkokka/mono-fsharp Ubuntu 14.04 with mono and F# 0 
  112.  
  113. pcherng/phasingapp-mono-dev 0 
  114.  
  115. bryanayers/centos7-mono3.8.0 0 [OK] 
  116.  
  117. monokrome/gitreceive 0 [OK] 
  118.  
  119. kolektiv/mono 0 
  120.  
  121. octohost/mono 0 
  122.  
  123. leptonix/mono 0 
  124.  
  125. monokrome/azure-cli 0 [OK] 
  126.  
  127. monokrome/renderize 0 [OK] 
  128.  
  129. monokrome/gitolite 0 [OK] 
  130.  
  131. paulbrennan/mono 0 
  132.  
  133. monokrome/sshd 0 [OK] 
  134.  
  135. basespace/centos-mono 0 
  136.  
  137. monokrome/nibbler 0 [OK] 
  138.  
  139. saltosystems/mono-xsp4-app 0 
  140.  
  141. clintonalee/centos6-mono 0 
  142.  
  143. endeavour/nginx-mono 0 
  144.  
  145. monokrome/chat 0 [OK] 
  146.  
  147. armbuild/crosbymichael-mono 0 
  148.  
  149. jpina/centos-mono 0 
  150.  
  151. bjornno/mono-phonebook 0 
  152.  
  153. pcherng/jellyfish-mono 0 
  154.  
  155. petee/centos-mono 0 
  156.  
  157. menziesbenwiles/test-mono 0 
  158.  
  159. nyasara/azurepymono A base ubuntu image with Mono, Azure SDK f... 0 [OK] 
  160.  
  161. allanlei/mono-fastcgi-server2 0 
  162.  
  163. petee/centos-mono-2.10.2 0 
  164.  
  165. nyasara/monobase Adds Azure SDK and IronPython to a mo no image 0 
  166.  
  167. hack13/mono310 opensuse mono 3.10 0 
  168.  
  169. originalsurfmex/monode development sandbox (uses 8080): node , exp... 0 
  170.  
  171. jgarverick/monocent Linux image with Mono framework pre-i nstalled 0 
  172.  
  173. pgrm/mono_baseimage 0 
  174.  
  175. pcherng/puma00-14-07-09-mono 0 
  176.  
  177. jgarverick/monodeb 0 
  178.  
  179. azraelrabbit/monup mono opt for jexus web server 0 [OK] 
  180.  
  181. afilimonov/hcci-solr 0 [OK] 
  182.  
  183. afilimonov/docker-solr 0 [OK] 
  184.  
  185. fireantik/fireantmonodocker 0 [OK] 
  186.  
  187. monolive/centos 0 
  188.  
  189. monofraps/centos65-base 0 
  190.  
  191. callumelgrant/docker-mono-aspnetvnext 0 [OK] 
  192.  
  193. seif/mono Debian based mono container using xam arin ... 0 [OK] 
  194.  
  195. smartprocure/mono 0 [OK] 
  196.  
  197. jamesottaway/mono Mono is an open source implementation of M... 0 [OK] 
  198.  
  199. cuda/mono Mono latest release container based o n Ubu... 0 [OK] 
  200.  
  201. crosbymichael/mono 0 [OK] 
  202.  
  203. derekslager/mono 0 [OK] 
  204.  
  205. shaunol/centos-mono 0 [OK] 
  206.  
  207. matsprea/mono-aspnetvnext Repository with MONO and the Asp.Net vnext... 0 [OK] 
  208.  
  209. djsell/mono 0 [OK] 
  210.  
  211. andystanton/exec-mono 0 [OK] 
  212.  
  213. ndelitski/mono 0 [OK] 
  214.  
  215. [root@Mono ~]# 

下载Mono的 docker镜像

  1. [root@Mono ~]# docker pull mono 
  2.  
  3. mono:latest: The image you are pulling has been verified 
  4.  
  5. f10807909bc5: Pull complete 
  6.  
  7. f6fab3b798be: Pull complete 
  8.  
  9. 3c43ebb7883b: Pull complete 
  10.  
  11. 7a1f8e485667: Pull complete 
  12.  
  13. a342319da8ea: Pull complete 
  14.  
  15. 3774d7ea06a6: Pull complete 
  16.  
  17. 9da8fc8d2ff5: Pull complete 
  18.  
  19. 511136ea3c5a: Already exists 
  20.  
  21. Status: Downloaded newer image for mono:latest 
  22.  
  23. [root@Mono ~]# 

使用docker运行mono

  1. [root@Mono ~]# docker run -i -t mono bash 
  2.  
  3.  
  4. root@66f9d4b4c73b:/# mono -V 
  5.  
  6. Mono JIT compiler version 3.10.0 (tarball Wed Nov 5 12:50:04 UTC 2014
  7.  
  8. Copyright (C) 2002-2014 Novell, Inc, Xamarin Inc and Contributors. www.mono-project.com 
  9.  
  10. TLS: __thread 
  11.  
  12. SIGSEGV: altstack 
  13.  
  14. Notifications: epoll 
  15.  
  16. Architecture: amd64 
  17.  
  18. Disabled: none 
  19.  
  20. Misc: softdebug 
  21.  
  22. LLVM: supported, not enabled. 
  23.  
  24. GC: sgen 
  25.  
  26. root@66f9d4b4c73b:/# 

本文出自:http://www.cnblogs.com/shanyou/p/4168391.html

 

责任编辑:Ophira 来源: cnblogs
相关推荐

2013-07-02 10:52:42

SUSELinuxWindows Azu

2013-07-02 11:34:46

SUSELinuxWindows Azu

2020-07-20 18:30:44

Fedora 32DockerLinux

2021-03-02 06:00:05

Docker.NET 5 Dockerfile

2016-07-29 15:49:58

DockerKubernetesMongoDB

2018-02-26 08:14:20

LinuxDocker容器

2013-05-13 13:43:37

2016-11-14 20:56:37

Docker数据中心服务器

2020-04-02 16:02:44

PythonGithub博客

2020-04-02 18:30:28

PythonGitHub编程语言

2022-01-18 17:57:21

PodmanLinux容器

2022-06-30 13:54:16

BottlesLinuxWindows

2015-10-14 10:02:33

ClojureScri Android

2016-08-11 15:03:36

Redis Sentigossip protagreement p

2016-08-11 14:32:54

Visual StudAzure远程调试

2019-12-20 10:28:54

工具代码开发

2022-06-23 09:55:56

WineZGUILinux 桌面Windows 应用

2012-11-05 10:04:37

微软Windows AzuHalo 4

2017-05-18 10:44:49

MACDockerOracle

2019-04-23 09:48:21

KubernetesPostgreSQL
点赞
收藏

51CTO技术栈公众号