docker 安裝linux centos 環境


 

 

如何在centos7中使用docker創建一個支持ssh連接的容器 

以下內容已有現成的,這里借用下這哥們的帖子https://www.cnblogs.com/caidingyu/p/10642158.html

並附上自己理解

 

 

1.拉取centos7.4鏡像(由於7.4目前是最穩定的版本,所以推薦使用centos7.4)

ps:最新版已到8,可去https://hub.docker.com/查閱

 

1
docker pull centos:7.4.1708

 

2.執行以下命令查看已有的鏡像

 

1
docker images

 

 

3、基於centos鏡像,創建一個名為centos7ssh的容器並進入容器(這里名稱可以自定義)

ps:啟動時 /bin/bash 表示命令行path。該path環境變量,自帶的有:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

 

 

1
docker run -it --name centos7ssh centos:7.4.1708  /bin/bash

 

 

4、進入容器后,安裝ssh服務端和客戶端,服務端能讓其他主機遠程登錄本機,客戶端能讓本機遠程登錄其他主機

ps:docker安裝的centos沒有passwd命令,但是你用whereis passwd依然可以找到位置。所有建議你安裝ssh的passwd命令

 

1
yum -y  install  passwd  openssl openssh-server openssh-clients

 

ps:我自己安裝yum install openssh-server 后。無需走5,6步

5.創建 /var/run/sshd/目錄,要不然sshd服務啟動會報錯

 

1
mkdir  /var/run/sshd/

 

6.編輯sshd的配置文件/etc/ssh/sshd_config,將其中的UsePAM yes改為UsePAM no

 

可以進入sshd_config文件中去修改,也可以使用命令:

 

1
sed  -i  "s/UsePAM.*/UsePAM no/g"  /etc/ssh/sshd_config

 

ps:你用密碼登錄就無需步驟7

7.創建公私密鑰,輸入命令后,直接按兩次enter鍵確認就行了

 

1
2
3
ssh -keygen -t rsa -f  /etc/ssh/ssh_host_rsa_key
ssh -keygen -t ecdsa -f  /etc/ssh/ssh_host_ecdsa_key
ssh -keygen -t ed25519 -f  /etc/ssh/ssh_host_ed25519_key

 

8.完成上述幾步后,可以開啟ssh服務了(&表示后台啟動)

 

1
/usr/sbin/sshd  -D &

 

9.此時使用命令ps -ef | grep sshd  便可以看到

 

 

10.查詢22端口是否處於監聽狀態

 

1
yum -y  install  lsof

 

1
lsof  -i:22

 

 

11.修改root密碼

 

1
passwd

 

12.測試

 

輸入命令ssh localhost,然后輸入之前設置的root密碼

 

 

上圖中可以看到已經登錄到本機了,也就說容器中的主機擁有了ssh遠程登錄其它主機的能力,當然你也可以登錄其他主機。

 

要退出的話,輸入命令exit即可

 

13.如何配置外部客戶端訪問docker里的centos7.4容器

 

獲取容器的ID等端口映射信息

 

1
docker  ps  -a

 

提交容器成為新的鏡像,例如叫做sshd_centos7.4,輸入

 

1
docker commit 容器ID sshd_centos7.4

 

啟動這個鏡像的容器,並映射本地的一個閑置的端口(例如15000)到容器的22端口,並啟動容器的sshd(只要端口不沖突可以同時啟動多個容器,如下圖)

 

1
docker run -d -p 15000:22 sshd_centos7.4  /usr/sbin/sshd  -D

 

 

現在打開新的終端,輸入ssh root@宿主機IP地址 -p 15000,如果能連接成功,會要求輸入密碼的,輸入剛才passwd命令設置的root賬戶密碼就可以進入容器的終端了

 

如果連接失敗,請檢查防火牆是否未開放該端口。 

 

 

 

參考文檔:https://www.cnblogs.com/whutxldwhj/p/6427530.html

 

https://blog.csdn.net/u013140345/article/details/79777311

 

https://blog.csdn.net/weipeng19861130/article/details/79006555

 

 

 

以下為網友提供的方法還未驗證是否可用,可自行驗證

 

1
2
3
4
5
6
7
8
9
10
11
12
docker pull centos:7.2.1511     // 也可以不指定版本,默認最新latest
docker run -t -i centos:7.2.1511  /bin/bash   // 啟動並進入docker 容器
 
yum  install  wget                    
wget -O  /etc/yum .repos.d /CentOS-Base .repo http: //mirrors .aliyun.com /repo/Centos-7 .repo 
yum cleal all
yum  install  passwd
yum  install  openssh-server         #安裝ssh服務端
echo  'passw0rd'  passwd  root     // 修改root密碼
 
docker commit [容器ID] [新鏡像名]    // 使用commit 提交,簡單的配置可以使用dockerfile創建鏡像,但是要配置環境比較復雜,還是需要用到commit
docker run -d -p 220:22 c7ssh  /usr/sbin/sshd  -D       // 啟動容器,並綁定容器端口22到宿主主機, 可以有多個-p 綁定多個端口,例如22端口讓遠程客戶端連接,8080 可以訪問容器內tomcat

總結:起初我安裝的是ubuntu,當然ubuntu的image很小只有80M左右。但是他僅僅只是一個內核,什么都沒有,自己需要安裝的東西太多。直接換的centos

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM