docker安裝ssh
通過命令行安裝
1.pull ubuntu鏡像
docker pull ubuntu:latest
2.啟動并進入bash
docker run -it -d ubuntu:lastest /bin/bash# 查看剛剛運行容器的iddocker ps# 在容器中執行bash命令docker exec -it id /bin/bash
3.安裝openssh-server并啟動
apt-get updateapt-get install openssh-server# 啟動之前需手動創建/var/run/sshd,不然啟動sshd的時候會報錯mkdir -p /var/run/sshd# sshd以守護進程運行/usr/sbin/sshd -D &# 安裝netstat,查看sshd是否監聽22端口apt-get install net-toolsnetstat -apn | grep ssh
如果已經監聽22端口,說明sshd服務啟動成功
4.ssh登陸
# 生成ssh keyssh-keygen -t rsa# 修改sshd-config允許root登陸sed -i 's+PermitRootLogin prohibit-password+PermitRootLogin yes' /etc/ssh/sshd-config
修改完sshd-config之后需要重啟sshd服務
// 找到pidps -aux | grep sshkill -9 pid/usr/sbin/sshd -D &
查看容器ip
ifconfig
在主機上進行登陸
ssh root@ip
就可以登錄成功了,但是注意這里是docker容器的宿主機才能登陸成功,如果需要其他機器登陸,可以在啟動docker的時候進行端口映射
// 11122宿主機端口,22為容器端口docker run -it -p 11122:22 // 在其他機器上可以使用以下命令登陸,假設宿主機ip為192.168.1.101ssh -p 11122 root@192.168.1.101
5.保存容器
// 把id為id的容器保存docker commit id sshd:ubuntu// 停止容器docker stop id
通過dockerfile
# 以最新的Ubuntu鏡像為模板FROM ubuntu:latest// 將本目錄下的sources.list作為容器的一個文件ADD sources.list /root/sources.list// 使用阿里Ubuntu源,更新快RUN cp /root/sources.list /etc/apt/sources.list.d/aliyun.listRUN apt-get updateRUN apt-get install -y openssh-serverRUN apt-get install -y net-toolsRUN apt-get install -y vimRUN mkdir -p /var/run/sshdRUN mkdir -p mkdir/root/.ssh/// 修改root密碼,便于遠程登錄RUN echo root:123456 | chpasswd// 將key生成在指定文件內RUN ssh-keygen -q -t rsa -b 2048 -f /etc/ssh/ssh_host_rsa_key -P '' -N ''// 配置ssh可以使用root登陸RUN sed -i 's/PermitRootLogin without-password/PermitRootLogin yes/' /etc/ssh/sshd_config// 開放22端口EXPOSE 22CMD /usr/sbin/sshd -D &
根據Dockerfile build鏡像
docker build -t nginx:ubuntu .
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VEVB武林網。
新聞熱點
疑難解答
圖片精選