前言

原创文章,转载引用务必注明链接。水平有限,如有疏漏,欢迎指正。

本文使用Markdown写成,为获得更好的阅读体验和正常的图片、链接,请访问我的博客:

http://www.cnblogs.com/sjqlwy/p/up_docker.html

本文环境:ubilinux 3.0 (全新安装并升级系统软件)

docker简介

docker是一种新兴的虚拟化方式,与传统的虚拟化方式(KVM、Xen、OpenVZ、VMware、VirtualBox、VirtualPC等)相比更轻量、更快捷,其不足在于只支持虚拟出Linux应用。

关于传统虚拟化方式介绍:《Xen、OpenVZ、KVM、Hyper-V、VMWare虚拟化技术介绍》

Docker的入门与使用推荐阅读:《Docker —— 从入门到实践》

传统虚拟机技术是虚拟出一套硬件后,在其上运行一个完整操作系统,在该系统上再运行所需应用进程;而容器内的应用进程直接运行于宿主的内核,容器内没有自己的内核,而且也没有进行硬件虚拟。因此容器要比传统虚拟机更为轻便。

在UP上使用Docker

虽然树莓派也支持运行docker,但是得益于UP板的高性能,我们可以在docker容器里获得更流畅的体验。下面展示如何安装docker,我们使用的ubilinux基于Debian Jessie,参考官方教程

系统需求

  • 64位系统

  • Linux 内核版本3.10以上(UP是4.4)

  • 安装必须软件包并导入GPG 密钥

    sudo su
    aptitude install -y apt-transport-https ca-certificates gnupg2
    apt-key adv --keyserver hkp://ha.pool.sks-keyservers.net:80 --recv-keys 58118E89F3A912897C070ADBF76221572C52609D

安装docker

#添加docker软件源(ustc),你也可以用官方的(国内比较慢)和清华的
echo "deb http://mirrors.ustc.edu.cn/docker-apt/repo debian-jessie main" | tee /etc/apt/sources.list.d/docker.list
#安装并启动docker服务
aptitude update && aptitude install docker-engine
systemd status docker
#如果不放心可以查看docker运行状态
systemctl status docker

镜像仓库

安装完docker之后,我们就可以拉取各种应用镜像运行了。当你发送拉取镜像命令时,由一个大管家相应你的请求,并把镜像从镜像仓库里发送给你,有点类似Linux的软件仓库的意思。官方的镜像仓库地址是 https://hub.docker.com ,同样存在国内访问过慢的问题,所以我们可以换用国内源来加速镜像下载。

Mirrors of hub.docker.com:

此外国内还有一些类似Docker Hub的服务,提供第三方镜像:

启用国内docker hub镜像

新版的 Docker 使用 /etc/docker/daemon.json文件配置源位置(没有则创建一个),添加以下内容:

{
"registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"]
}

使用systemctl restart docker即可生效,此时下载镜像的速度会有很大提升。

Hello World!

docker run hello-world

使用以上命令即可在容器内下载运行一个测试镜像,之后在屏幕上输出hello world并退出。

使用docker images命令可以查看当前已拉取的镜像。

后记

本文讲述了如何在UP Board上安装配置运行docker,并演示了一个demo。下面将会介绍如何使用docker快速在UP上部署WebIDE云端开发环境。建议多读读Docker —— 从入门到实践,很棒的书。

由于docker打包的应用有自己的一套运行环境,可以非常方便地分发共享,而不需要解决不同系统的软件运行库问题,加上它其他的各种优势,应用起来非常方便。

docker on UP Board的更多相关文章

  1. Learn Docker

    Learn Docker A Container is to VM today, what VM was to Physical Servers a while ago. The workload s ...

  2. docker——容器安装tomcat

    写在前面: 继续docker的学习,学习了docker的基本常用命令之后,我在docker上安装jdk,tomcat两个基本的java web工具,这里对操作流程记录一下. 软件准备: 1.jdk-7 ...

  3. Docker笔记一:基于Docker容器构建并运行 nginx + php + mysql ( mariadb ) 服务环境

    首先为什么要自己编写Dockerfile来构建 nginx.php.mariadb这三个镜像呢?一是希望更深入了解Dockerfile的使用,也就能初步了解docker镜像是如何被构建的:二是希望将来 ...

  4. Docker 第一篇--初识docker

    已经多年不写博客, 看完<晓松奇谈>最后一期猛然觉醒, 决定仔细梳理下自己这几年的知识脉络. 既然决定写, 那么首先就从最近2年热门的开源项目Docker开始.Docker 这两年在国内很 ...

  5. 在docker中运行ASP.NET Core Web API应用程序(附AWS Windows Server 2016 widt Container实战案例)

    环境准备 1.亚马逊EC2 Windows Server 2016 with Container 2.Visual Studio 2015 Enterprise(Profresianal要装Updat ...

  6. docker for mac 学习记录

    docker基本命令 docker run -d -p 80:80 --name webserver nginx 运行容器并起别名 docker ps 展示目前启动的容器 docker ps -a 展 ...

  7. scrapy爬虫docker部署

    spider_docker 接我上篇博客,为爬虫引用创建container,包括的模块:scrapy, mongo, celery, rabbitmq,连接https://github.com/Liu ...

  8. [原][Docker]特性与原理解析

    Docker特性与原理解析 文章假设你已经熟悉了Docker的基本命令和基本知识 首先看看Docker提供了哪些特性: 交互式Shell:Docker可以分配一个虚拟终端并关联到任何容器的标准输入上, ...

  9. 开发者的利器:Docker 理解与使用

    困扰写代码的机器难免会被我们安装上各种各样的开发工具.语言运行环境和引用库等一大堆的东西,长久以来不仅机器乱七八糟,而且有些相同的软件还有可能会安装不同的版本,这样又会导致一个项目正常运行了,却不小心 ...

随机推荐

  1. python面向对象(C3算法)(六)

    1. 了解python2和python3类的区别 python2在2.3之前使用的是经典类, 2.3之后, 使用的是新式类 2. 经典类的MRO 树形结构的深度优先遍历 -> 树形结构遍历 cl ...

  2. 牛客网暑期ACM多校训练营(第五场) E room(最小费用最大流 , 最小权二分图匹配模板)

    链接: https://www.nowcoder.com/acm/contest/143/E 题意: 给定n个宿舍的新安排, 每个宿舍都有4个人, 问要至少有多少个人换位才能变成新安排. 可以建一个二 ...

  3. JQuery基本事件函数

    1,click单击事件 2,blur失去光标事件,focus获得光标事件 3,JQuery.on()函数:为html元素绑定事件,如下代码: $("div").on("c ...

  4. IIS PUT

    测试版本:IIS6.0 利用工具 1.IIS PUT Scaner By ZwelL 2.桂林老兵IIS写权限利用程序   -------------------------------------- ...

  5. Python自动发送邮件(可带附件)

    Python内置对SMTP的支持,可以发送纯文本邮件.HTML邮件以及带附件的邮件. Python对SMTP支持有smtplib和email两个模块,email负责构造邮件,smtplib负责发送邮件 ...

  6. 去掉WordPress顶部工具条

    WordPress为了方便管理员,或者登陆用户快速的从前台进入后台来管理网站,在WordPress网站顶部强制加入了一个工具条(admin bar),而且默认是对所有登陆用户都显示的,有时候看着挺烦心 ...

  7. Convolution Fundamental I

    Convolution Fundamental I Foundations of CNNs Learning to implement the foundational layers of CNN's ...

  8. 11g自动分区超过最大限制

    公司业务系统一张表按时间每天分区 写入数据时报错:ORA-14300: 分区关键字映射到超出允许的最大分区数的分区 ORA-14300: partitioning key maps to a part ...

  9. 【CCF】行车路线 改编Dijkstra

    [AC] #include<iostream> #include<cstdio> #include<string> #include<cstring> ...

  10. 【单调队列】poj 2823 Sliding Window

    http://poj.org/problem?id=2823 [题意] 给定一个长度为n的序列,求长度为k的滑窗内的最大值和最小值 [思路] 裸的单调队列 注意用C++提交,不然会T,orz我用G++ ...