1、拉取基础镜像

docker pull ubuntu

2、查看镜像

  1. docker images

3、启动一个容器

  1. docker run -it ubuntu

4、查找运行的容器ID

  1. docker ps

5、根据容器ID,进入容器,例如:docker exec -i -t 42bc7b76ac82 bash

  1. docker exec -i -t <CONTAINER ID> bash

上面3、4、5 可以合并为一个命令执行,达到同样的效果:

  1. docker run -it ubuntu /bin/bash

6、安装curl

docker 的 ubuntu 镜像中没有curl 命令,安装.net core 会用到,所以先安装 curl

  1. apt-get update
  2. apt-get install curl

7、查看docker images 镜像的版本,我这里使用的是ubuntu:latest 镜像

  1. cat /etc/issue

输出如下:

  1. Ubuntu 16.04.3 LTS \n \l

8、在官网上找到对应版本的安装步骤

Ubuntu 16.04 and Linux Mint 18

  1. curl https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > microsoft.gpg
  2. sudo mv microsoft.gpg /etc/apt/trusted.gpg.d/microsoft.gpg
  3. sudo sh -c 'echo "deb [arch=amd64] https://packages.microsoft.com/repos/microsoft-ubuntu-xenial-prod xenial main" > /etc/apt/sources.list.d/dotnetdev.list'

进入容器默认是root 用户,要去掉sudo,执行上面命令,执行成功后,继续执行update

  1. apt-get update

 发现会报错,错误信息如下:

  1. E: The method driver /usr/lib/apt/methods/https could not be found.
  2. N: Is the package apt-transport-https installed?
  3. E: Failed to fetch https://packages.microsoft.com/repos/microsoft-ubuntu-xenial-prod/dists/xenial/InRelease
  4. E: Some index files failed to download. They have been ignored, or old ones used instead.

 信息提示很明确,需要安装 apt-transport-https

  1. apt-get install apt-transport-https

再次执行 update

  1. apt-get update

安装.net core

  1. apt-get install dotnet-dev-1.1.4

如果使用的是其他版本的SDK 开发的程序,请在官网上找对应的安装步骤,特别说明,上述步骤对应 ubuntu16.4 .net core 1.1.4 ,我尝试了安装1.1.2 的sdk,但失败了,懒得折腾就安装了1.X的最后一个版本。

由于有一个老程序使用的是1.1.2 的runtime ,所以需要修改程序的runtime 属性,才可以正常运行。

友情提示:应广大童鞋要求,这里提供一下1.1.2 runtime ,安装命令:

参考官网地址:https://github.com/dotnet/core/blob/master/release-notes/download-archives/1.0.4-sdk-download.md

Ubuntu 16.04 and Linux Mint 18

  1. sudo sh -c 'echo "deb [arch=amd64] https://apt-mo.trafficmanager.net/repos/dotnet-release/ xenial main" > /etc/apt/sources.list.d/dotnetdev.list'
  2. sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 417A0893
  3. sudo apt-get update
  4. sudo apt-get install dotnet-dev-1.0.4

  如果安装的是1.0.5 sdk,对应的runtime 为1.1.2 ,则无需执行下面的第14步(修改应用程序的RuntimeFrameworkVersion)

9、安装 Git

  1. apt-get install git

10、查看 Git 版本

  1. git --version

  输出如下:

  1. git version 2.7.4

默认安装的git版本太低,需要升级,请查看ubuntu16.0.4 update git

11、下载微软示例源码

  1. git clone https://github.com/Microsoft/PartsUnlimited.git

 12、这个示例代码用到nodejs 6.11.0 ,所以需要安装nodejs

网站上看到如下信息,大概意思就是,默认安装的版本比较低,是4.2.6 ,想安装6.11.0,需要用其他方式,一个是PPA ,另一个就是NVM ,本人更喜欢NVM ,下面会使用NVM 作为安装方式。

Ubuntu 16.04 contains a version of Node.js in its default repositories that can be used to easily provide a consistent experience across multiple systems. At the time of writing, the version in the repositories is v4.2.6. This will not be the latest version, but it should be quite stable, and should be sufficient for quick experimentation with the language.

不解释了,直接上命令:

  1. apt-get update
  2. apt-get install build-essential libssl-dev
  3. curl -sL https://raw.githubusercontent.com/creationix/nvm/v0.33.6/install.sh -o install_nvm.sh
  4. bash install_nvm.sh
  5. source ~/.profile
  6. nvm ls-remote
  7. nvm install 6.11.0

安装完成后,查看node 版本:

  1. node -v

 13、进入源码目录,进行编译

  1. cd /opt/PartsUnlimited/src/PartsUnlimitedWebsite/

 14、修改程序运行的runtime 属性,系统自带的vi ,是阉割版的vim-command ,使用非常的不习惯,所以,我先安装了vim,再修改文件。

安装vim:

  1. apt-get install vim

修改文件:

  1. vim PartsUnlimitedWebsite.csproj

  

将1.1.2 修改为1.1.4

15、还原程序

  1. dotnet restore

16、编译

  1. dotnet build

  控制台输出如下信息:

需要安装grunt

  1. npm install grunt -g  

特别注意:使用nvm安装node 后,需要设置node 路径,

  1. whereis node

  查询出node路径:

  1. /home/azureuser/.nvm/versions/node/v6.11.0/bin/node

  执行下面命令,进行设置:

  1. sudo ln -s /home/azureuser/.nvm/versions/node/v6.11.0/bin/node /usr/bin/node

  再次执行:

  1. whereis node

  显示如下:

  1. node: /usr/bin/node /home/azureuser/.nvm/versions/node/v6.11.0/bin/node

  同样的方式设置npm:

  1. sudo ln -s /home/azureuser/.nvm/versions/node/v6.11.0/bin/npm /usr/bin/npm

  同样的方式设置grunt:

  1. sudo ln -s /home/azureuser/.nvm/versions/node/v6.11.0/bin/grunt /usr/bin/grunt

  

17、再次执行编译命令:

  1. dotnet build

  

出现以下错误:

  1. The command "grunt" exited with code 3.

  执行下面命令来解决:

  1. npm rebuild node-sass

  

再次执行编译命令,完美通过。

Make Docker Image On Ubuntu17.10的更多相关文章

  1. Ubuntu17.10 Install Docker-ce

    官网目前的安装步骤在最新版本的Ubuntu17.10 上会提示没有安装源,下面是针对17.10 安装步骤: 参考资料 sudo apt-get update sudo apt-get install ...

  2. NVIDIA Titan Xp Star Wars Collector's Edition显卡深度学习工作站 + Ubuntu17.10 + Tensorflow-gpu + Anaconda3 + Python 3.6 设置

    为了能让 Tensorflow GPU 版本跑起来,我折腾了1个多星期. 总体参照 https://zhuanlan.zhihu.com/p/32118549 ,安装成功,但还是有不足的地方, 在此记 ...

  3. ubuntu17.10安装LAMP并测试部署php探针系统

    ubuntu17.10修改密码以及安装LAMP并部署php探针系统 步骤1:ubuntu17.10配置IP (这个版本配置IP方式改变较大,apt-get upgrade更新至最新以前配置方式也可以用 ...

  4. 搭建双系统win10+ubuntu17.10

    0. 序言 这里采用先装win10,再装ubuntu的顺序.这样可以避免后面系统启动项设置的问题.都采用UEFI引导方式,且使用usb2.0的u盘来引导(3.0的话,要准备好3.0的驱动).另外注意的 ...

  5. ubuntu17.10 安装CUDA

    1. 更新apt-get源列表 sudo apt-get update sudo apt-get upgrade 2. 添加驱动源 sudo add-apt-repository ppa:graphi ...

  6. Ubuntu17.10下编译Openjdk8u

    一开始笔者用的系统和软件版本都是最新的,导致编译了好几次都失败,最后找到解决的办法,现在记录一下编译及解决的方法 避免以后忘记 所用操作系统 Ubuntu17.10 所用软件及版本 make 3.8. ...

  7. Docker Toolbox在window 10 home 下挂载宿主机目录到容器的正确操作

    由于我是window 10 home 而不是 pro版本,只能使用Docker Toolbox,其实docker for window对windows的支持更好,还有GUI,home版本安装Docke ...

  8. Docker学习总结(10)——10分钟玩转Docker

    1.前言 进入云计算的时代,各大云提供商AWS,阿里云纷纷推出针对Docker的服务,现在Docker是十分火爆,那么Docker到底是什麽,让我们来体验一下. 2.Docker是什麽 Docker是 ...

  9. ubuntu17.10安装lnmp安装包的核心问题-gcc版本、g++版本

    大致碰到的问题都是这样,不是php安装失败,就是MySQL安装失败,或者Nginx也安装失败 基本上是花式报错.后来在军哥的论坛中找到了这个帖子:https://bbs.vpser.net/viewt ...

随机推荐

  1. Spring结合AspectJ的研究

    本文阐述以下内容:1.AspectJ是什么及使用方式2.Spring AOP和AspectJ的区别3.Spring结合AspectJ的使用方法和原理4.Spring注解方式使用AspectJ遇到的问题 ...

  2. 转:关于android webview实践的文章集合

    http://blog.csdn.net/jiangqq781931404/article/category/2681765

  3. centos/7/isos/x86_64 下载

    为了节约有限的可用带宽. 不从mirror.centos.org下载iso映像 以下镜子应该可用的ISO映像: http://mirrors.aliyun.com/centos/7/isos/x86_ ...

  4. redis学习笔记——RDB和AOF持久化二

    上一篇对RDB的源码分析是比较多的,但是AOF持久化执行进行了一些理论上的分析和概念的说明.本来想自己偷一些懒,将上篇文章中最后所给链接的AOF实现代码随便过一过算了,后来也就是在过的过程中发现自己这 ...

  5. linux-文件系统基本概念

    linux中全部数据都是用文件存储,存放在文件夹中,文件夹呈树状结构. (一)文件类型 1.普通文件 包含文本文件.源码文件及可运行文件等.linux中不区分文本和二进制文件. 2.文件夹 类似win ...

  6. 从服务端架构设计角度,深入理解大型APP架构升级

    随着智能设备普及和移动互联网发展,移动端应用逐渐成为用户新入口,重要性越来越突出.但企业一般是先有PC端应用,再推APP,APP 1.0版的功能大多从现有PC应用平移过来,没有针对移动自身特点考虑AP ...

  7. MPEG2 PS和TS流格式

    http://blog.csdn.net/alangdangjia/article/details/9495193 应该说真正了解TS,还是看了朋友推荐的<数字电视业务信息及其编码>一书之 ...

  8. Git学习笔记一--创建版本库、添加文件、提交文件等

    Git,是Linus花了两周时间用C写的一个分布式版本控制系统.牛该怎么定义? 其实,很多人都不care谁写了Git,只在乎它是免费而且好用的!So do I! 下面开始我们的学习: 1.Git安装( ...

  9. COSMOSBOX手遊制作手册(Word备份)

    20140712版 版本号 Version 日期 Date 作者 Author 变更主要原因描述 Brief Description 1.0 2014-4-26 陈霈霖 初稿 2.0 1. 前言 本手 ...

  10. 算法笔记_103:蓝桥杯练习 算法提高 金明的预算方案(Java)

    目录 1 问题描述 2 解决方案   1 问题描述 问题描述 金明今天很开心,家里购置的新房就要领钥匙了,新房里有一间金明自己专用的很宽敞的房间.更让他高兴的是,妈妈昨天对他说:“你的房间需要购买哪些 ...