Docker創(chuàng)建支持SSH服務(wù)的鏡像

1.基于commit命令創(chuàng)建

1.1 配置ssh服務(wù)

# 查看images
[root@langzi01 ~]# docker ps -a
2f5f9417b073        centos              "/bin/bash"              3 days ago          Up 3 days                                       data01
# 更新yum源
[root@2f5f9417b073 /]# yum update -y

#查看sshd服務(wù)
[root@2f5f9417b073 /]# sshd       
bash: sshd: command not found

#安裝ssh
[root@2f5f9417b073 /]# yum install -y openssh-server

#創(chuàng)建目錄乱凿,要正常啟動唁情,需要 /var/run/sshd 存在。
[root@2f5f9417b073 /]# mkdir /var/run/sshd

#啟動服務(wù) -- 發(fā)現(xiàn)報錯
[root@2f5f9417b073 /]# /usr/sbin/sshd -D &
Could not load host key: /etc/ssh/ssh_host_rsa_key
Could not load host key: /etc/ssh/ssh_host_ecdsa_key
Could not load host key: /etc/ssh/ssh_host_ed25519_key

#解決辦法
[root@2f5f9417b073 sshd]# ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key 
[root@2f5f9417b073 sshd]# ssh-keygen -t ecdsa -f /etc/ssh/ssh_host_ecdsa_key
[root@2f5f9417b073 sshd]# ssh-keygen -t ed25519 -f /etc/ssh/ssh_host_ed25519_key


#再次啟動服務(wù)
[root@2f5f9417b073 sshd]# /usr/sbin/sshd

#查看服務(wù)
[root@2f5f9417b073 sshd]# 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      302/sshd            
tcp6       0      0 :::80                   :::*                    LISTEN      87/httpd            
tcp6       0      0 :::22                   :::*                    LISTEN      302/sshd 

[root@2f5f9417b073 ~]# pwd
/root
[root@2f5f9417b073 ~]# mkdir .ssh

#新開會話沈撞,查看, 這里@之后是langzi01慷丽,容器@之后是2f5f9417b073
[root@langzi01 ~]# cd .ssh/
[root@langzi01 .ssh]# ls
authorized_keys  id_rsa  id_rsa.pub  known_hosts
[root@langzi01 .ssh]# cat id_rsa.pub 
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC3q8E9u60OwMSPTbpLlIyxKVsmICFgTQccnPLXMYFelZQ6KSdXSPCItCWh5rIC0EuOh3J9ykNlqQC0GNoZ27ziom3ezsH0cP9Puqzzp9tqdiMZtLB/UviyRIKARemtuyEM14/PUV+SES4A6K514nJ5g96KEdxb7gl/20TfiYa0Eo+CtABiyIYTz+q/AHh0zAx20qwEPcRWyKsIEurtd+IyopxZmbYzIXX9yDurBks5ROS2Viq64B2nPvB+Yhhc5ehGKCbi52qIMgIXPMQob3fuW6+ProunnAvdFb7+eRlrY3M3QTkC7jdB5ZNGNa0bNTD0amD49ImwCsY1eXzrm5XB root@langzi01

#切換到容器繪畫
[root@2f5f9417b073 .ssh]# vi authorized_keys
#將宿主的 id_rsa.pub內(nèi)容復(fù)制到該文件中


#創(chuàng)建  /run.sh
[root@2f5f9417b073 .ssh]# vi /run.sh

#內(nèi)容如下:
[root@04c0e6e78f46 ~]# cat /run.sh 
#!/bin/bash
/usr/sbin/sshd -D

#退出容器 exit

1.2 保存鏡像

[root@langzi01 ~]# docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                  PORTS               NAMES
2f5f9417b073        centos              "/bin/bash"              3 days ago          Up 3 days                                   data01
[root@langzi01 ~]# docker commit 2f5 sshd:centos
sha256:08d75e23080972ce9a4494a7b748b081a0286d88a97f9bb453bd88e280749146
[root@langzi01 ~]# docker images
REPOSITORY                  TAG                 IMAGE ID            CREATED             SIZE
sshd                        centos              08d75e230809        4 seconds ago       383 MB

1.3 使用鏡像

[root@langzi01 ~]# docker run -p 10022:22 --name sshd -d sshd:centos /run.sh
04c0e6e78f46652c590b444b211bd76c3526311e3676bd3300c9846f371f6f56
[root@langzi01 ~]# docker ps -l
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS                   NAMES
04c0e6e78f46        sshd:centos         "/run.sh"           7 seconds ago       Up 5 seconds        0.0.0.0:10022->22/tcp   sshd

1.4 宿主ssh登錄

[root@langzi01 ~]# ssh 172.17.0.1 -p 10022
The authenticity of host '[172.17.0.1]:10022 ([172.17.0.1]:10022)' can't be established.
ECDSA key fingerprint is SHA256:MsHCJMCYdCwMmfC2fJva7hEQV2gQlIwR0py3h9l3iXU.
ECDSA key fingerprint is MD5:05:5d:c3:90:4d:1a:32:35:74:0e:ea:c8:1a:42:60:65.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '[172.17.0.1]:10022' (ECDSA) to the list of known hosts.
[root@04c0e6e78f46 ~]# pwd
/root

2.基于Dockerfile命令創(chuàng)建

2.1 創(chuàng)建工作目錄

[root@langzi01 docker]# pwd
/root/docker
[root@langzi01 docker]# mkdir sshd_centos
[root@langzi01 docker]# ls
sshd_centos
[root@langzi01 docker]# cd sshd_centos/
[root@langzi01 docker]# touch Dockerfile run.sh
Dockerfile  run.sh

2.2 編寫run.sh 腳本和authorized_keys 文件

[root@langzi01 sshd_centos]# vim run.sh
#!/bin/bash
/usr/sbin/sshd -D

# 在宿主主機上生成SSH密鑰對想诅,并創(chuàng)建authorized_keys文件:
[root@langzi01 sshd_centos]# ssh-keygen -t rsa
# 一路回車
[root@langzi01 sshd_centos]# cat ~/.ssh/id_rsa.pub > authorized_keys

2.3 編寫Dockerfile

[root@langzi01 sshd_centos]# vim Dockerfile
FROM centos:7.4

MAINTAINER docker_user docker_user@email.com

#安裝sshd服務(wù)
#RUN yum update -y
RUN yum install -y openssh-server
RUN mkdir -p /var/run/sshd
RUN mkdir -p /root/.ssh
RUN ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key
RUN ssh-keygen -t ecdsa -f /etc/ssh/ssh_host_ecdsa_key
RUN ssh-keygen -t ed25519 -f /etc/ssh/ssh_host_ed25519_key
#復(fù)制配置文件到相應(yīng)的位置,并賦予腳本可執(zhí)行權(quán)限
ADD authorized_keys /root/.ssh/authorized_keys
ADD run.sh /run.sh
RUN chmod 755 /run.sh

#開放端口
EXPOSE 22

# 設(shè)置自啟動命令
CMD ["/run.sh"]

2.4 創(chuàng)建鏡像

[root@langzi01 sshd_centos]# docker build -t sshd:centos .

2.5 測試鏡像当船,運行容器

[root@langzi01 sshd_centos]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
sshd                centos              d5f2887c0d88        17 minutes ago      282 MB
[root@langzi01 sshd_centos]# docker run -d -p 10022:22 sshd:centos
ac104109a2395004cc6c7de97557d806c1bb9a5ac43bb9073a431d8e80c0747f

2.6 連接容器

[root@langzi01 .ssh]# ssh 172.17.0.1 -p 10022
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that a host key has just been changed.
The fingerprint for the ECDSA key sent by the remote host is
SHA256:dnCAPxpfBTT1jt23wblI0OH+Nhzl4ZuQXBLvRPcWcjI.
Please contact your system administrator.
Add correct host key in /root/.ssh/known_hosts to get rid of this message.
Offending ECDSA key in /root/.ssh/known_hosts:3
ECDSA host key for [172.17.0.1]:10022 has changed and you have requested strict checking.
Host key verification failed.

如何解決這個bug?

解決方式:
cd /root/.ssh
vi known_hosts
找到對應(yīng)的子機ip的 ssh-rsa 刪除該行默辨,退出保存known_hosts德频,重新執(zhí)行主機ssh連接子機,通過操作缩幸。

重新連接

[root@langzi01 .ssh]# ssh 172.17.0.1 -p 10022
The authenticity of host '[172.17.0.1]:10022 ([172.17.0.1]:10022)' can't be established.
ECDSA key fingerprint is SHA256:dnCAPxpfBTT1jt23wblI0OH+Nhzl4ZuQXBLvRPcWcjI.
ECDSA key fingerprint is MD5:cb:c7:cd:f0:26:5a:4c:62:5e:d6:1f:bf:2c:a2:ed:4d.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '[172.17.0.1]:10022' (ECDSA) to the list of known hosts.
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末壹置,一起剝皮案震驚了整個濱河市兄墅,隨后出現(xiàn)的幾起案子熙尉,更是在濱河造成了極大的恐慌,老刑警劉巖养渴,帶你破解...
    沈念sama閱讀 211,123評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件爆办,死亡現(xiàn)場離奇詭異难咕,居然都是意外死亡,警方通過查閱死者的電腦和手機距辆,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,031評論 2 384
  • 文/潘曉璐 我一進店門余佃,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人挑格,你說我怎么就攤上這事咙冗。” “怎么了漂彤?”我有些...
    開封第一講書人閱讀 156,723評論 0 345
  • 文/不壞的土叔 我叫張陵雾消,是天一觀的道長。 經(jīng)常有香客問我挫望,道長立润,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,357評論 1 283
  • 正文 為了忘掉前任媳板,我火速辦了婚禮桑腮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘蛉幸。我一直安慰自己破讨,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 65,412評論 5 384
  • 文/花漫 我一把揭開白布奕纫。 她就那樣靜靜地躺著提陶,像睡著了一般。 火紅的嫁衣襯著肌膚如雪匹层。 梳的紋絲不亂的頭發(fā)上隙笆,一...
    開封第一講書人閱讀 49,760評論 1 289
  • 那天,我揣著相機與錄音,去河邊找鬼撑柔。 笑死瘸爽,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的铅忿。 我是一名探鬼主播剪决,決...
    沈念sama閱讀 38,904評論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼辆沦!你這毒婦竟也來了昼捍?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,672評論 0 266
  • 序言:老撾萬榮一對情侶失蹤肢扯,失蹤者是張志新(化名)和其女友劉穎妒茬,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體蔚晨,經(jīng)...
    沈念sama閱讀 44,118評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡乍钻,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,456評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了铭腕。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片银择。...
    茶點故事閱讀 38,599評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖累舷,靈堂內(nèi)的尸體忽然破棺而出浩考,到底是詐尸還是另有隱情,我是刑警寧澤被盈,帶...
    沈念sama閱讀 34,264評論 4 328
  • 正文 年R本政府宣布析孽,位于F島的核電站,受9級特大地震影響只怎,放射性物質(zhì)發(fā)生泄漏袜瞬。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,857評論 3 312
  • 文/蒙蒙 一身堡、第九天 我趴在偏房一處隱蔽的房頂上張望邓尤。 院中可真熱鬧,春花似錦贴谎、人聲如沸汞扎。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,731評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽佩捞。三九已至,卻和暖如春蕾哟,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,956評論 1 264
  • 我被黑心中介騙來泰國打工谭确, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留帘营,地道東北人。 一個月前我還...
    沈念sama閱讀 46,286評論 2 360
  • 正文 我出身青樓逐哈,卻偏偏與公主長得像芬迄,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子昂秃,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,465評論 2 348