利用docker安装和使用BusyBox、Alphine、Debian/Ubuntu、CentOS/Fedora等操作系统
一、系统列表
官方镜像大小比较
REPOSITORY | TAG | IMAGE ID | VIRTUAL SIZE |
alpine | latest | e7d92cdc71fe | 5.59MB |
debian | latest | b5d2d9b1597b | 114MB |
busybox | latest | 6d5fcfe5ff17 | 1.22MB |
ubuntu | latest | 775349758637 | 64MB |
centos | latest | 470671670cac | 237MB |
BusyBox
BusyBox是一个集成了一百多个最常用Linux命令和工具(如cat、echo、grep、mount、telnet等)的精简工具箱,它只有几MB的大小,很方便进行各种快速验证,被誉为“Linux系统的瑞士军刀”。BusyBox可运行于多款POSIX环境的操作系统中,如Linux(包括Android)、Hurd、FreeBSD等。
下载镜像,镜像大小仅为1.22MB
docker pull busybox:latest
启动一个 busybox 容器,并在容器内查看挂载信息,如下所示
docker run –it busybox
mount
Alpine
Alpine 操作系统是一个面向安全的轻型Linux发行版。它不同于通常的Linux发行版,Alpine采用了musllibc和BusyBox以减小系统的体积和运行时资源消耗,但功能上比BusyBox又完善得多,因此得到开源社区越来越多的青睐。在保持瘦身的同时,Alpine还提供了自己的包管理工具apk,可以通过https://pkgs.alpinelinux.org/packages查询包信息,也可以通过apk 命令直接查询和安装各种软件。
下载镜像,镜像大小 5MB 左右
docker run alpine ;
Debian
Debian是由GPL和其他自由软件许可协议授权的自由软件组成的操作系统,由DebianProject组织维护。Debian计划是一个独立、分散的组织,由3000个志愿者组成,接受世界多个非盈利组织的资金支持,Software in the Public Interest提供支持并持有商标作为保护机构。Debian以其坚守 Unix和自由软件的精神,以及给予用户的众多选择而闻名。现在Debian 包括了超过25000个软件包并支持12个计算机系统结构。
下载镜像,镜像大小 114MB
docker search debian
Ubuntu基于Debian发行版和GNOME桌面环境,与Debian的不同在于它每6个月会发布一个新版本(即每年的四月与十月),每2年发布一个LTS长期支持版本。
普通的桌面版可以获得发布后18个月内的支持,标为LTS(长期支持)的桌面版可以获得更长时间的支持。例如,Ubuntu 8.04 LTS(代号Hardy Heron),其桌面应用系列可以获得为期3年的技术支持,服务器版可以获得为期5年的技术支持[16]。而自Ubuntu 12.04 LTS开始,桌面版和服务器版均可获得为期5年的技术支持。2013年3月有消息指出,Ubuntu计划在4月25日Ubuntu13.04发布后,将非LTS版本的支持时间自18个月缩短至9个月,并采用滚动发布模式,允许开发者在不升级整个发行版的情况下升级单个核心包。
Ubuntu的目标在于为一般用户提供一个最新同时又相当稳定,主要以自由软件建构而成的操作系统。Ubuntu当前具有庞大的社群力量支持,用户可以方便地从社群获得帮助。
搜索被收藏10次以上的镜像
docker search -s 10 ubuntu
下载镜像并启动容器
docker run -ti ubuntu:14.04 /bin/bash
当试图直接使用 apt-get 安装一个软件的时候,会提示
E: Unable to locate package:
这并非系统不支持apt-get命令。Docker镜像在制作时为了精简清除了 apt仓库信息,因此需要先执行 apt-get update 命令来更新仓库信息。更新信息后即可成功通过 apt-get 命令来安装软件:
apt-get update
安装curl工具:
apt-get install curl -y
CentOS/Fedora
CentOS和Fedora都是基于Redhat的常见Linux分支。CentOS是目前企业级服务器的常用操作系统;Fedora则主要面向个人桌面用户。
CentOS(Community Enterprise Operating System,社区企业操作系统)是基于Red Hat Enterprise Linux 源代码编译而成的。由于 CentOS与Redhat Linux源于相同的代码基础,所以很多成本敏感且需要高稳定的公司就使用CentOS 来替代商业版 Red Hat Enterprise Linux。CentOS自身不包含闭源软件。
下载镜像并启动容器
docker run -it centos bash
Fedora
Fedora是由Fedora Project 社区开发,红帽公司赞助的 Linux 发行版。它的目标是创建一套新颖、多功能并且自由和开源的操作系统。对用户而言,Fedora是一套功能完备的、可以更新的免费操作系统,而对赞助商 Red Hat而言,它是许多新技术的测试平台,被认为可用的技术最终会加入到 Red Hat Enterprise Linux中
下载镜像并启动容器
docker run -it fedora bash
二、镜像添加SSH服务
之前使用了一些进入容器的方法,比如attach、exec等命令,但是这些命令没办法远程管理容器。所以如果需要远程管理就需要使用SSH。
1.准备
使用ubuntu镜像创建一个容器
docker run -p 10022:22 -it ubuntu /bin/bash
更新apt
apt-get update;
2.安装并配置SSH服务
apt-get install openssh-server –y;
如果需要正常启动 SSH 服务,则目录/ var/run/sshd 必须存在。手动创建它,并启动 SSH 服务
mkdir -p /var/run/sshd
/usr/sbin/sshd -D &
安装netstat
apt-get install net-tools
此时查看容器的22端口(SSH默认监听端口)
root@b01f068b0cff:/# netstat -tunlp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 3845/sshd
tcp6 0 0 :::22 :::* LISTEN 3845/sshd
重设密码
passwd
新密码
确认新密码
#如提示没有passwd这个命令行使用yum install passwd安装
修改SSH配置文件以下选项,去掉#注释,将四个选项启用:
$ vim /etc/ssh/sshd_config
- RSAAuthentication yes #启用 RSA 认证
- PubkeyAuthentication yes #启用公钥私钥配对认证方式
- AuthorizedKeysFile .ssh/authorized_keys #公钥文件路径(和上面生成的文件同)
- PermitRootLogin yes #root能使用ssh登录
此时在宿主机上或者别的主机上可使用ssh连接容器
ssh 192.168.1.23 -p 10022
创建自动启动SSH服务的可执行文件run.sh
vim /run.sh
#内容如下
#!/bin/bash
/usr/sbin/sshd -D
添加可执行权限
chmod +x run.sh
3.保存并使用镜像
退出容器保存镜像
exit;
docker commit saf3fsd9 sshd:ubuntu
启动新镜像启动容器
docker run -p 10022:22 -d sshd:ubuntu /run.sh