Docker容器中啟用SSH服務(wù)的方法步驟
在 Docker 容器中運(yùn)行 SSH 服務(wù)需要一些調(diào)整,因?yàn)?Docker 容器通常使用 init
系統(tǒng)而不是完整的 systemd
。以下是配置 SSH 服務(wù)在 Docker Ubuntu 容器中運(yùn)行的步驟:
1. 安裝 SSH 服務(wù)
如果還未安裝 OpenSSH,請(qǐng)先安裝:
apt update apt install openssh-server -y
2. 配置 SSH 服務(wù)
編輯 SSH 配置文件,確保服務(wù)可以正常啟動(dòng)。
編輯配置文件:
nano /etc/ssh/sshd_config
檢查以下配置項(xiàng)并修改(如有需要):
禁用 PAM(Docker 容器中推薦):
UsePAM no
允許密碼登錄(如需通過密碼登錄):
PasswordAuthentication yes
保存并退出(Nano 中按 Ctrl+O
保存,Ctrl+X
退出)。
3. 創(chuàng)建 SSH 運(yùn)行目錄
SSH 服務(wù)需要 /run/sshd
目錄。
mkdir -p /run/sshd
4. 啟動(dòng) SSH 服務(wù)
由于 Docker 容器通常沒有 systemd
,需要直接運(yùn)行 sshd
命令來啟動(dòng)服務(wù)。
/usr/sbin/sshd -D
-D
選項(xiàng)讓 sshd
以前臺(tái)模式運(yùn)行,適合 Docker 容器。
5. 后臺(tái)運(yùn)行 SSH 服務(wù)(可選)
如果想讓 SSH 在容器中持續(xù)運(yùn)行,可以在啟動(dòng)容器時(shí)使用 docker run
命令運(yùn)行一個(gè)附帶 sshd
的入口點(diǎn)腳本。
示例 Dockerfile
FROM ubuntu:latest # 安裝 OpenSSH 服務(wù) RUN apt update && apt install -y openssh-server && mkdir -p /run/sshd # 配置 SSH RUN echo 'root:password' | chpasswd RUN sed -i 's/#PermitRootLogin prohibit-password/PermitRootLogin yes/' /etc/ssh/sshd_config RUN sed -i 's/#PasswordAuthentication yes/PasswordAuthentication yes/' /etc/ssh/sshd_config # 啟動(dòng) SSH 服務(wù) CMD ["/usr/sbin/sshd", "-D"]
構(gòu)建和運(yùn)行容器:
docker build -t ubuntu-ssh . docker run -d -p 2222:22 ubuntu-ssh
這將啟動(dòng)一個(gè)允許通過 SSH 連接的 Docker 容器,并將主機(jī)的端口 2222
映射到容器的端口 22
。
6. 測(cè)試 SSH 連接
使用以下命令從主機(jī)連接到容器:
ssh root@localhost -p 2222
輸入之前設(shè)置的密碼(如 password
),即可登錄到容器中。
7. 注意事項(xiàng)
- 安全性: 不建議在生產(chǎn)環(huán)境中使用密碼登錄,推薦使用密鑰認(rèn)證。
- 容器?;睿?nbsp;如果需要 SSH 和其他服務(wù)同時(shí)運(yùn)行,可使用
supervisord
或其他工具管理多個(gè)進(jìn)程。
到此這篇關(guān)于Docker容器中啟用SSH服務(wù)的方法步驟的文章就介紹到這了,更多相關(guān)Docker啟用SSH服務(wù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Docker compose安裝部署創(chuàng)建自定義網(wǎng)絡(luò)使用舉例
這篇文章主要為大家介紹了Docker compose安裝部署創(chuàng)建自定義網(wǎng)絡(luò)使用舉例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-09-09Docker多個(gè)容器不能有相同端口號(hào)的處理方案
這篇文章主要介紹了Docker多個(gè)容器不能有相同端口號(hào)的處理方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2021-03-03docker-compose up -d和docker-compose up -
本文主要介紹了docker-compose up -d和docker-compose up --build的區(qū)別,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-07-07Docker Compose 搭建簡(jiǎn)單的Python網(wǎng)絡(luò)應(yīng)用程序(步驟詳解)
在這個(gè)頁面上,你可以建立一個(gè)簡(jiǎn)單的Python網(wǎng)絡(luò)應(yīng)用程序,運(yùn)行在Docker Compose上,這篇文章主要介紹了Docker Compose 搭建簡(jiǎn)單的Python網(wǎng)絡(luò)應(yīng)用程序,需要的朋友可以參考下2022-07-07Docker安裝Kong API Gateway并使用的詳細(xì)教程
這篇文章主要介紹了Docker安裝Kong API Gateway并使用,本文通過圖文實(shí)例相結(jié)合給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-08-08docker-compose鏡像發(fā)布springboot項(xiàng)目的流程分析
Docker-Compose項(xiàng)目由Python編寫,調(diào)用Docker服務(wù)提供的API來對(duì)容器進(jìn)行管理。因此,只要所操作的平臺(tái)支持Docker API,就可以在其上利用Compose來進(jìn)行編排管理,接下來通過本文給大家介紹docker-compose發(fā)布springboot項(xiàng)目的流程分析,一起看看吧2021-06-06Docker報(bào)錯(cuò)Operation?not?permitted問題的解決方法
剛開始接觸Docker的朋友經(jīng)常會(huì)遇到問題,下面這篇文章主要給大家介紹了關(guān)于Docker報(bào)錯(cuò)Operation?not?permitted問題的解決方法,需要的朋友可以參考下2023-02-02docker-compose啟動(dòng)redis集群的實(shí)現(xiàn)步驟
本文主要介紹了docker-compose啟動(dòng)redis集群的實(shí)現(xiàn)步驟,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-07-07Docker Volume存儲(chǔ)卷的實(shí)現(xiàn)
Docker的存儲(chǔ)卷是一種將宿主機(jī)的本地文件系統(tǒng)中的某個(gè)目錄與容器內(nèi)部的文件系統(tǒng)中的某個(gè)目錄建立綁定關(guān)系的機(jī)制,下面就來介紹一下,感興趣的可以了解一下2024-12-12