使用docker创建科协学习用服务器
科协内部培训的第一节课是我教的Linux基础,考虑到肯定会有部分同学没有Linux服务器并且没有提前安装好Linux虚拟机,我决定在科协的服务器上开20个docker的ubuntu镜像给他们使用。
1. 手动操作步骤
1 通过apt安装docker服务
在科协服务器上,执行
1 | sudo apt install docker |
2 下载ubuntu镜像
1 | docker pull ubuntu |
3. 创建Linux容器
1 | sudo docker run -it -p 0.0.0.0:3002:22 --name ubuntu-02 ubuntu |
此时便进入了新创建容器中:
4. 安装并配置sshd
但由docker创建的ubuntu是没有sshd的,所以需要先安装sshd:
1 | apt update |
区域选6. Asia:
时区选70. Shanghai:
待安装成功后,需要打开root账户远程登录,否则无法登陆:
1 | apt install -y vim |
将其中PermitRootLogin
改为yes:
保存退出后,打开sshd服务:
1 | /etc/init.d/ssh start |
随后更改密码:
1 | passwd |
在~
目录新建一个init.sh
,内容为:
1 | /etc/init.d/ssh start |
5. 退出并测试登陆
按键盘Ctrl + P + Q
脱离此容器,新开一个终端,测试ssh:
2. 从容器构建镜像
如果20个容器都这样操作一番,未免太过麻烦。我们可以将刚刚配置好的Ubuntu系统打包成镜像,剩下的就从镜像直接生成容器。
1 | sudo docker commit -m="ubuntu_sshd" -a="hoshimgg" 33e51d40d736 ubuntu/sshd:1.0 |
3. 从新镜像创建剩下的容器
先手动创建一个看看运行是否正常,注意创建时加入-d
命令,这样创建后便不会自动attach进去。
1 | sudo docker run -itd -p 0.0.0.0:3006:22 --name ubuntu-06 ubuntu/sshd:1.3 |
手动测试没问题后,我们便开始编写自动化脚本:
1 | num=7 |