文件目錄結構:
(1).authorized_keys(rsa秘鑰)文件由mac 終端生成
(2).run.sh 啟動ssh服務的shell腳本文件
#!/bin/bash
/usr/sbin/sshd -D
第一行代表指令運行需要的環境
Dockerfile代碼:
FROM ubuntu
MAINTAINER “niwanglongSshUbuntu”
#apt-get 換源
RUN sed -i 's/archive.ubuntu.com/mirrors.ustc.edu.cn/g' /etc/apt/sources.list
RUN apt-get update
#安裝SSH服務
RUN apt-get install -y openssh-server
RUN mkdir -p /var/run/sshd
RUN mkdir -p /root/.ssh
#配置SSH
#設置ssh遠程登陸密碼
RUN echo "root:123456" | chpasswd
RUN sed -ri 's/^PermitRootLogin\s+.*/PermitRootLogin yes/' /etc/ssh/sshd_config
RUN sed -ri 's/UsePAM yes/#UsePAM yes/g' /etc/ssh/sshd_config
#復制Rsa文件到相應位置,并賦予腳本可執行權限
ADD authorized_keys /root/.ssh/authorized_keys
ADD run.sh /run.sh
RUN chmod 755 /run.sh
#開放端口
EXPOSE 22
#設置自啟動命令
CMD ["/bin/bash","/run.sh"]
dokcer build 后,運行容器即可。不懂的可以看下我寧外一篇文章,Docker 配置前端開發環境實戰
Paste_Image.png
在mac下輸入dockerfile 設置的root密碼即可登錄了。
遇到的問題
1.提示遠端rsa秘鑰已改變
刪除/users/yixinmac/.ssh目錄下的文件,然后重新生成rsa秘鑰,再build新的配置鏡像,當然你也可以進入容器替換掉/root/.ssh/authorized_keys目錄下的秘鑰文件再重啟ssh服務即可。這里得力于docker的聯合文件系統,舊鏡像存在的情況下,我們可以快速的再新建新的鏡像。
docker build -t registry:tag .
走起