基于 Docker 快速构建 Linux 0.11 实验环境

by Falcon of TinyLab.org

2015/05/02

简介

五分钟内搭建 Linux 0.11 的实验环境介绍了如何快速构建一个 Linux 0.11 实验环境。

本文介绍如何快速构建一个独立于宿主机的 Linux 0.11 实验环境,该实验环境可以用于任何操作系统的宿主开发机,将非常方便各类学生学习 Linux 0.11,本文只介绍 Ubuntu。在 Windows 和 Mac 下可以用 VirtualBox + Boot2Docker 来启动。

下文要求已经安装 git 和 docker,如果没有安装请首先安装:

  • 安装 git

    $ sudo apt-get install git
    
  • 安装 docker
    $ sudo apt-get install software-properties-common # 增加 add-apt-repository 命令
    $ sudo apt-get install python-software-properties
    $ sudo add-apt-repository ppa:dotcloud/lxc-docker # 增加一个ppa源,如:ppa:user/ppa-name
    $ sudo apt-get -y update
    $ sudo apt-get install lxc-docker
    

拉下 Linux 0.11 实验环境

$ git clone https://gitlab.com/tinylab/linux-0.11.git

通过 Docker 构建一个独立的实验环境

$ cd linux-0.11
$ docker build -t tinylab/linux-0.11-lab ./

启动装有实验环境的 Docker 容器

$ CONTAINER_ID=$(docker run -d -p 6080:6080 dorowu/ubuntu-desktop-lxde-vnc)

获得实验环境的密码

$ docker logs $CONTAINER_ID | sed -n 1p
    User: ubuntu Pass: ubuntu

:登录密码为 Pass 之后的字符串,这里为 ubuntu

远程登录实验环境

  • 在本地宿主机登录

  • 远程登录
    • 获得实验环境所属容器的 IP 地址

      $ docker exec 8222763de ifconfig eth0 | grep "inet addr:"
      inet addr:172.17.0.1  Bcast:0.0.0.0  Mask:255.255.0.0
      
    • 访问地址:http://172.17.0.1:6080/vnc.html

简单使用

登录后,无须再额外安装任何工具,因为刚才在构建 Docker 容器时就已经默认安装好。所以用法与 五分钟内搭建 Linux 0.11 的实验环境 稍有差异。基本步骤如下:

  • 登录后,通过左下角的启动菜单,找到 Accessories,再打开控制台 LXTerminal
  • 进入实验环境所属目录:cd /linux-0.11-lab
  • 进行各种开发与调试动作
    • 例如:make start-hd
    • 也可切换 bochs 启动,例如:echo bochs > tools/vm.cfg; make start-fd
  • 更多用法请参考:make help

效果如下:

时间: 2024-10-23 08:08:42

基于 Docker 快速构建 Linux 0.11 实验环境的相关文章

Docker快速构建Redis集群(cluster)

Docker快速构建Redis集群(cluster) 以所有redis实例运行在同一台宿主机上为例子 搭建步骤 redis集群目录清单 . ├── Dockerfile ├── make_master_slave.sh ├── run_master_slave.sh ├── compose_master_slave.sh ├── redis-trib.rb ├── master │?? ├── 7000 │?? │?? ├── data │?? │?? │?? ├── appendonly.ao

Linux 0.11中write实现

看了一下Linux 0.11版本write的实现,首先它在标准头文件unistd.h中有定义 int write(int fildes, const char * buf, off_t count); 接下来看write.c /* * linux/lib/write.c * * (C) 1991 Linus Torvalds */ #define __LIBRARY__ #include <unistd.h> //定义write的实现 _syscall3(int,write,int,fd,co

Linux 0.11 中字符设备的使用

Linux 0.11 字符设备的使用 一.概述 本文自顶向下一步步探索字符设备的读写是怎么完成的.通常我们在Linux应用程序中用open.read.write对各种类型的文件进行操作.我们可以从键盘输入,然后命令行窗口会显示你的输入,有输出的话则命令行窗口会显示输出.为什么所有的设备在Linux中都被看成是一个个文件,可以通过统一的read.write直接进行读写?文件句柄与终端设备有什么关联?为什么Linux允许多个控制终端登录?tty又是什么东西?读写时将发生哪些硬件中断,驱动程序是怎么回

Linux 0.11下信号量的实现和应用

Linux 011下信号量的实现和应用 生产者-消费者问题 实现信号量 信号量的代码实现 关于sem_wait和sem_post sem_wait和sem_post函数的代码实现 信号量的完整代码 实现信号量的系统调用 测试用的应用程序的实现 Linux 0.11下信号量的实现和应用 1.生产者-消费者问题 从一个实际的问题:生产者与消费者出发,谈一谈为什么要有信号量?信号量用来做什么? 问题描述:现在存在一个文件”.\buffer.txt”作为一个共享缓冲区,缓冲区同时最多只能保存10个数.现

docker安装步骤及基于docker容器部署web应用LNMP服务器环境

docker的介绍 docker的定义: 1.docker的三个概念:Docker是一个开源的引擎,可以轻松的为任何应用创建一个轻量级的.可移植的.自给自足的容器Docker 镜像 - Docker images: Docker 镜像是 Docker 容器运行时的只读模板Docker 仓库 - Docker registeries: Docker 仓库用来保存镜像,可以理解为代码控制中的代码仓库(Docker Hub)Docker 容器 - Docker containers:每一个 Docke

构建Linux下IMX257 开发环境

构建Linux下IMX257 开发环境 2015-03-09 李海沿 一直以来玩开发IMX257都是使用Windows,然后就必须开一个超级卡的虚拟机,接着就是使用securecrt远程登录虚拟机中的linux和通过串口登录开发板的linux系统. 这里,我们来实现将所有的开发环境工作都转移至linux操作系统下,这下我们就不用饱受虚拟机导致的电脑卡的痛苦了. 接下来,我们不如正题: 在linux下,我们可以有两种方法来实现:minicom 和 C-kerimit两种方法. 我刚开始使用的是mi

linux笔记(实验环境搭建)

磁盘和分区 硬盘分区有主分区.扩展分区和逻辑分区之分.一块硬盘最多可以有4个主分区,其中一个主分区的位置可以用一个扩展分区来替换,且一个硬盘只能有一个扩展分区,在这个扩展分区内可以划分多个逻辑分区. 磁盘设备名称如下: — 系统的第一块IDE接口的硬盘称为/dev/hda以此类推.分区则使用数字编号表示.如:/dev/hda1  /dev/hdb2 — 数字编号1~4留给主分区或扩展分区使用,逻辑分区编号从5开始. — SAS/SCSI/SATA/USB接口硬盘的名称均以/dev/sd[a-p]

本地使用 docker 快速搭建一个 PHP7.4 学习环境 | Laravel China 社区

原文:本地使用 docker 快速搭建一个 PHP7.4 学习环境 | Laravel China 社区 安装 docker# 安装方法:https://hub.docker.com/?overlay=onboarding 文档手册:https://docs.docker.com/docker-hub/ 安装完成后使用命令查看版本 $ docker --version 下载镜像# 1.拉取需要的镜像# 去 hub.docker.com 拉取需要的镜像 2.查看拉取方法# 3.转到终端界面# 拉取

基于Docker快速搭建多节点Hadoop集群--已验证

Docker最核心的特性之一,就是能够将任何应用包括Hadoop打包到Docker镜像中.这篇教程介绍了利用Docker在单机上快速搭建多节点 Hadoop集群的详细步骤.作者在发现目前的Hadoop on Docker项目所存在的问题之后,开发了接近最小化的Hadoop镜像,并且支持快速搭建任意节点数的Hadoop集群. 一. 项目简介 GitHub: kiwanlau/hadoop-cluster-docker 直接用机器搭建Hadoop集群是一个相当痛苦的过程,尤其对初学者来说.他们还没开