制作可以 SSH 登录的 Docker 镜像
2024-10-19 11:42:40
Docker使用系列一我们把镜像源改为了阿里云的,方便后续的操作。
执行这个命令就把源地址改为阿里的:
curl https://git.oschina.net/feedao/Docker_shell/raw/start/ali-centos.sh | sh
第一安装Docker:
yum -y install docker-io
第二 启动Docker:
service docker start
第三安装制作CentOS镜像的工具:
yum -y install febootstrap
第四 制作CentOS镜像文件centos6-image目录
febootstrap -i bash -i wget -i yum -i iputils -i iproute -i man -i vim-minimal -i openssh-server -i openssh-clients centos6 centos6-image http://mirrors.aliyun.com/centos/6/os/x86_64/
第五制作Docker镜像,镜像名字是centos6-base, 最后的点是必须要的
cd centos6-image && docker build -t centos6-base .
cd centos6-image && tar -c .|docker import - centos6-base 【测试有效】
第六制作可以ssh登陆的Docker镜像,名字是centos6-ssh
docker build -t centos6-ssh https://git.oschina.net/feedao/Docker_shell/raw/start/Dockerfile
经过前面的六个步骤,一个可以登陆的本地docker镜像就制作好了。
用户名是:root,密码是:123456
体验步骤:
创建容器:
docker run -d -p 127.0.0.1:33301:22 centos6-ssh
ssh登陆容器:
ssh root@127.0.0.1 -p 33301
输入密码后就可以开始折腾了。
通过授信无密码登陆
依赖于centos6-ssh镜像,制作第三个自动授信的镜像centos-newssh。
方法如下:
curl https:
//git
.oschina.net
/feedao/Docker_shell/raw/start/Docker-centos-autossh
.sh | sh
一个命令就行了,这条命令会创建一个新镜像centos-newssh
开始体验,现在不需要输入root密码了:
docker run -d -p 127.0.0.1:33306:22 -m 256M centos-newssh
ssh
root@127.0.0.1 -p 33306
"echo $LANG;ifconfig"
如果不想第一次连接的时候输入yes,确认连接,可以使用下面的命令:
ssh
-o StrictHostKeyChecking=no root@127.0.0.1 -p 33306
"echo $LANG;ifconfig"
体验完了,我们来分析下
https:
//git
.oschina.net
/feedao/Docker_shell/raw/start/Docker-centos-autossh
.sh
#!/bin/sh
[ ! -d /root/.ssh ] && mkdir -p /root/.ssh
ssh-keygen -q -N "" -t dsa -f /root/.ssh/id_dsa
KEY_PUB=`cat /root/.ssh/id_dsa.pub`
[ ! -d /root/docker-temp ] && mkdir /root/docker-temp
cd /root/docker-temp
cat >/root/docker-temp/Dockerfile <<EOF
#Dockerfile
FROM centos6-ssh
MAINTAINER feedao <feedao@163.com>
EOF
echo "RUN echo \"$KEY_PUB\" > /root/.ssh/authorized_keys && chmod 600 /root/.ssh/authorized_keys " >>Dockerfile
cd /root && cat /root/docker-temp/Dockerfile | docker build -t centos-newssh -
脚本内容比较简单,就是生成新的秘钥和公钥
ssh
-keygen -q -N
""
-t dsa -f
/root/
.
ssh
/id_dsa
然后把公钥自动加到Docker容器中,这里是修改Dockerfile:
echo
"RUN echo \"$KEY_PUB\" > /root/.ssh/authorized_keys && chmod 600 /root/.ssh/authorized_keys "
>>Dockerfile
最后创建新的镜像:
cd
/root
&&
cat
/root/docker-temp/Dockerfile
| docker build -t centos-newssh -
你可以把/root/docker-temp文件夹删除
rm
-rf
/root/docker-temp
最新文章
- 读取xml数据装配到字典中之应用场景
- 配置springMVC之后,引入js,css等资源处理
- 2016huasacm暑假集训训练四 递推_A
- [读书笔记]C#学习笔记一: .Net Framwork
- (转)JS Date格式化为yyyy-MM-dd类字符串
- shell脚本实现拷贝大文件显示百分比的代码分享
- ArcGIS中的北京54和西安80投影坐标系详解
- Swift:函数和闭包
- Libpcap
- java—— 文件操作
- jQuery模糊选择
- Mps与Mrp区别
- 数据层交换和高性能并发处理(开源ETL大数据治理工具--KETTLE使用及二次开发 )
- Jetty支持Windows认证
- ExtJS初接触 —— 了解 Ext Core
- wiringPi安装
- Java WebSocket 线程安全的保证
- 多啦爱梦~多啦A梦CSS3测试源代码
- AllowOverride以及Options相关指令
- Ubuntu 搭建etcd