在這個教程中,我們將通過一個簡單的例子來展示如何使用 Docker 和 atmoz/sftp
鏡像設置一個基本的 SFTP 服務。這個服務將允許用戶通過 SFTP 安全地訪問和管理文件。我們將配置一個名為 ops
的用戶,其密碼為 123456
,并限定用戶只能訪問特定的目錄。
步驟 1: 準備數據目錄
首先,確保你在宿主機上有一個目錄用于存放通過 SFTP 服務訪問的文件。我們將使用 /mnt/d/local_dir
作為示例。如果這個目錄不存在,請先創建它:
sudo mkdir -p /mnt/d/local_dir
sudo chown -R 1001:1001 /mnt/d/local_dir
sudo chmod -R 755 /mnt/d/local_dir
這些命令會創建目錄,并設置適當的所有權和權限,確保 UID 1001(我們將為 SFTP 用戶 ops
使用的 UID)可以訪問和修改這個目錄。
步驟 2: 運行 Docker 容器
使用下面的 docker run
命令來啟動你的 SFTP 容器:
docker run --name sftp-ops -d -p 2222:22 -v /mnt/d/local_dir:/home/ops/data atmoz/sftp ops:123456:1001:::data
這個命令的各個部分意義如下:
--name sftp-ops
:為容器設置一個名稱,這里我們命名為sftp-ops
。-d
:以守護進程模式運行 Docker 容器。-p 2222:22
:將容器的 22 端口映射到宿主機的 2222 端口,這樣你可以通過宿主機的 2222 端口連接 SFTP 服務。-v /mnt/d/local_dir:/home/ops/data
:將宿主機的/mnt/d/local_dir
目錄掛載到容器的/home/ops/data
目錄。這使得在 SFTP 中可見的data
目錄對應于宿主機的/mnt/d/local_dir
目錄。atmoz/sftp
:使用的 Docker 鏡像。ops:123456:1001:::data
:配置 SFTP 用戶的參數。
步驟 3: 連接到 SFTP 服務
一旦容器運行,你可以使用任何支持 SFTP 的客戶端軟件(如 FileZilla、WinSCP 或命令行的 sftp
工具)來連接。例如,使用命令行的 sftp
工具,你可以這樣連接:
sftp -P 2222 ops@localhost
然后輸入密碼 123456
進行登錄。