xuncode 发表于 2015-4-18 05:53:38

Docker运行 Mono

Docker运行 Mono

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

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

  本文并不会针对 Docker 这个技术做深入的介绍,主要着重在 Azure 对于 Docker 所提供的支持做介绍,详细了解可以参考 Docker 入门教程。
  在 Azure 上建立 Docker Host
  Docker 可以运行在 Linux 操作系统之下,所以如果要在 Azure 上使用 Docker,您也可以自行建立一个Linux VM,并在上面安装 并运行Docker Deamon 。而微软在正式宣布与 Docker 密切合作后,推出了对 Docker 的直接支持,CentOS 7 中 Docker 的安装
  Docker 软件包已经包括在默认的 CentOS-Extras 软件源里。因此想要安装 docker,只需要运行下面的 yum 命令:
  # yum install docker
  启动 Docker 服务
  # systemctl start docker.service
  # systemctl enable docker.service
  下载官方的 CentOS 镜像到本地
  # docker pull centos
  centos:latest: The image you are pulling has been verified
  511136ea3c5a: Pull complete
  5b12ef8fd570: Pull complete
  34943839435d: Pull complete
  Status: Downloaded newer image for centos:latest
  确认 CentOS 镜像已经被获取:
  # docker images centos
  REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
  centos latest 34943839435d 13 days ago 224 MB
  运行一个 Docker 容器:
  # docker run -i -t centos /bin/bash
  # ls /etc
  BUILDTIME group nsswitch.conf rpm
  DIR_COLORS group- openldap sasl2
  DIR_COLORS.256color gshadow opt securetty
  DIR_COLORS.lightbgcolor gshadow- os-release security
  GREP_COLORS gss pam.d selinux
  X11 host.conf passwd services
  aliases hostname passwd- shadow
  alternatives hosts pkcs11 shadow-
  bash_completion.d hosts.allow pki shells
  bashrc hosts.deny pm skel
  binfmt.d init.d popt.d ssl
  centos-release inputrc prelink.conf.d sysconfig
  chkconfig.d iproute2 printcap sysctl.d
  cron.daily issue profile system-release
  cron.hourly issue.net profile.d system-release-cpe
  csh.cshrc krb5.conf protocols systemd
  csh.login ld.so.conf rc.d terminfo
  dbus-1 ld.so.conf.d rc0.d tmpfiles.d
  default libaudit.conf rc1.d udev
  dracut.conf.d libuser.conf rc2.d virc
  environment localtime rc3.d xdg
  exports login.defs rc4.d xinetd.d
  filesystems logrotate.d rc5.d yum
  fstab magic rc6.d yum.conf
  gcrypt modules-load.d redhat-release yum.repos.d
  gnupg motd resolv.conf
  groff mtab rpc
  我们可以看到,CentOS 容器已经被启动,并且我们得到了 bash 提示符。在 docker 命令中我们使用了 "-i 捕获标准输入输出"和 "-t 分配一个终端或控制台"选项。若要断开与容器的连接,输入 exit。
  # exit
  Exit
  我们还可以搜索基于 mono的容器。 发现已经有非常多的mono容器,我们开始玩docker mono。
  # docker search mono
  NAME DESCRIPTION STARS OFFICIAL AUTOMATED
  mono Mono is an open source implementation of M... 24
  akoeplinger/mono-aspnetvnext Image containing everything needed to play... 14
  monokrome/wine 4
  monokrome/node 3
  friism/mono 2
  benhall/docker-mono Docker file at https://github.com/Ben Hall/... 2
  devdiv/ubuntu-mono 1
  nacyot/fsharp-mono 1
  caseyjbenko/docker-mono 1
  nacyot/csharp-mono 1
  rexm/mono-docker 1
  prozachj/docker-mono-aspnetvnext 1
  clarktlaugh/mono 0
  marcells/mono 0
  seif/docker-mono-fastcgi-nginx 0
  fghedin/docker-mono 0
  shaunol/mono-owin-webapi 0
  seif/mono-runit 0
  timefairy/debian-mono 0
  shaunol/learning-mono 0
  rmacdonaldsmith/docker-debian-mono-devel 0
  misakai/mono Mono and LLVM on Debian 0
  bryanayers/centos7-mono-snapshot 0
  fghedin/docker-mono-hello 0
  acazau/docker-mono 0
  andmos/mono Baseimage for Mono-runtime. 0
  eflab/mono 0
  jbonhag/mono-hosting-wcf 0
  thachmai/mono-complete 0
  andrefernandes/docker-mono 0
  mikehadlow/ubuntu-monoxide-mono-devel 0
  allunite/mono-base Ubuntu with Mono base image 0
  wimperdt/mono-in-docker 0
  ahmet/docker-mono-build 0
  pmcgrath/mono 0
  allunite/buildimage-mono Drone.io build image for mono apps 0
  tomrijntjes/monoculture 0
  pjvds/mono 0
  basecrm/mono 0
  monokrome/btsync 0
  basespace/mono 0
  robzhu/mono 0
  monokrome/zmq 0
  bowery/mono 0
  wbonner/unity-mono 0
  wayneo/mono 0
  rwentzel/ubuntu-mono Ubuntu 13.04 with Mono 3.2.3 0
  scottrudy/mono 0
  haaf/mono-baseline A Mono 3.8 baseline with F# installed . So... 0
  monokrome/minecraft 0
  bryanayers/centos7-mono3.10.0 0
  tilde/mono 0
  junsuzuki/mono 0
  virkokka/mono-fsharp Ubuntu 14.04 with mono and F# 0
  pcherng/phasingapp-mono-dev 0
  bryanayers/centos7-mono3.8.0 0
  monokrome/gitreceive 0
  kolektiv/mono 0
  octohost/mono 0
  leptonix/mono 0
  monokrome/azure-cli 0
  monokrome/renderize 0
  monokrome/gitolite 0
  paulbrennan/mono 0
  monokrome/sshd 0
  basespace/centos-mono 0
  monokrome/nibbler 0
  saltosystems/mono-xsp4-app 0
  clintonalee/centos6-mono 0
  endeavour/nginx-mono 0
  monokrome/chat 0
  armbuild/crosbymichael-mono 0
  jpina/centos-mono 0
  bjornno/mono-phonebook 0
  pcherng/jellyfish-mono 0
  petee/centos-mono 0
  menziesbenwiles/test-mono 0
  nyasara/azurepymono A base ubuntu image with Mono, Azure SDK f... 0
  allanlei/mono-fastcgi-server2 0
  petee/centos-mono-2.10.2 0
  nyasara/monobase Adds Azure SDK and IronPython to a mo no image 0
  hack13/mono310 opensuse mono 3.10 0
  originalsurfmex/monode development sandbox (uses 8080): node , exp... 0
  jgarverick/monocent Linux image with Mono framework pre-i nstalled 0
  pgrm/mono_baseimage 0
  pcherng/puma00-14-07-09-mono 0
  jgarverick/monodeb 0
  azraelrabbit/monup mono opt for jexus web server 0
  afilimonov/hcci-solr 0
  afilimonov/docker-solr 0
  fireantik/fireantmonodocker 0
  monolive/centos 0
  monofraps/centos65-base 0
  callumelgrant/docker-mono-aspnetvnext 0
  seif/mono Debian based mono container using xam arin ... 0
  smartprocure/mono 0
  jamesottaway/mono Mono is an open source implementation of M... 0
  cuda/mono Mono latest release container based o n Ubu... 0
  crosbymichael/mono 0
  derekslager/mono 0
  shaunol/centos-mono 0
  matsprea/mono-aspnetvnext Repository with MONO and the Asp.Net vnext... 0
  djsell/mono 0
  andystanton/exec-mono 0
  ndelitski/mono 0
  #
  下载Mono的 docker镜像
  # docker pull mono
  mono:latest: The image you are pulling has been verified
  f10807909bc5: Pull complete
  f6fab3b798be: Pull complete
  3c43ebb7883b: Pull complete
  7a1f8e485667: Pull complete
  a342319da8ea: Pull complete
  3774d7ea06a6: Pull complete
  9da8fc8d2ff5: Pull complete
  511136ea3c5a: Already exists
  Status: Downloaded newer image for mono:latest
  #
  使用docker运行mono
  # docker run -i -t mono bash
  )
  root@66f9d4b4c73b:/# mono -V
  Mono JIT compiler version 3.10.0 (tarball Wed Nov 5 12:50:04 UTC 2014)
  Copyright (C) 2002-2014 Novell, Inc, Xamarin Inc and Contributors. www.mono-project.com
  TLS: __thread
  SIGSEGV: altstack
  Notifications: epoll
  Architecture: amd64
  Disabled: none
  Misc: softdebug
  LLVM: supported, not enabled.
  GC: sgen
  root@66f9d4b4c73b:/#
  
页: [1]
查看完整版本: Docker运行 Mono