【Docker】SFTPサーバコンテナ構築手順と使い方(atmoz/sftp)

DockerですぐにSFTPサーバを構築したい方は「atmoz/sftp」をお勧めします。
このSFTPサーバはDockerをインストールしている状態であれば、構築時間は1分もあれば完了します。

Dockerのインストールはこちらから

DockerコンテナでSFTPサーバを簡単に構築する手順(atmoz/sftp)

SFTPサーバのコンテナは以下のイメージから作成します。
【GitHub】atmoz/sftp

このSFTPサーバーの構築は公式ページの設定に沿って実行します。

Dockerイメージダウンロード+コンテナ起動

以下コマンドでDockerイメージのダウンロード、コンテナ起動を実施します。

コマンドの内容は以下となります。

  • ポート:22番使用
  • Dockerイメージ:atmoz/sftp
  • ユーザー/パスワード:foo/pass
  • アップロードフォルダ:upload
# docker run -p 22:22 -d atmoz/sftp foo:pass:::upload
Unable to find image 'atmoz/sftp:latest' locally
latest: Pulling from atmoz/sftp
e22122b926a1: Pull complete
df7e8e13024a: Pull complete
5e2e5786172c: Pull complete
235b2ad99f20: Pull complete
9c74c05cbe4d: Pull complete
Digest: sha256:49110a019fb90e9dd869c361702307015f15649282047764e957ecf07eaa2325
Status: Downloaded newer image for atmoz/sftp:latest
c64b563185138337418af5576604880ab3e84cefa1e699003111fd6e84e4f3fa

Port22が使用されてエラーとなる場合はポートを変更して実施します。

# docker run -p 2222:22 -d atmoz/sftp foo:pass:::upload

以下コマンドでSFTPイメージがダウンロードされていることを確認

# docker images
REPOSITORY            TAG       IMAGE ID       CREATED        SIZE
atmoz/sftp            latest    7381cb94f5bd   23 hours ago   154MB

以下コマンドでコンテナが起動していることが確認できます。

# docker ps
CONTAINER ID   IMAGE                 COMMAND                  CREATED          STATUS             PORTS                                                      NAMES
c64b56318513   atmoz/sftp            "/entrypoint foo:pas…"   26 seconds ago   Up 24 seconds      0.0.0.0:22->22/tcp                                         heuristic_knuth

Dockerコンテナ(SFTPサーバ)動作確認

実際にSFTPサーバへアクセスします。
ユーザ名は「foo」となるので以下のコマンドでアクセスします。

アクセス後、パスワードを聞かれたら「pass」と入力しエンターをします。
「Connected」の表記が出ればOKです。

# sftp foo@localhost
The authenticity of host 'localhost (127.0.0.1)' can't be established.
ED25519 key fingerprint is SHA256:jfugvH6XQbC8OBd/NBoBpL05GJVhukplMtJzBUS2lBs.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added 'localhost' (ED25519) to the list of known hosts.
foo@localhost's password:
Connected to foo@localhost.
sftp>

VMware関連などで以下の指定がある場合
「ECDSA キーの SHA-256 フィンガープリントのみを指定」

上記アクセス時に表示される「fingerprint」を記載します。

SHA256:jfugvH6XQbC8OBd/NBoBpL05GJVhukplMtJzBUS2lBs

外部端末からのアクセス

C:>sftp -oPort="2222" foo@192.168.0.1
foo@10.180.197.140's password:
Connected to 10.180.197.140.
sftp>

ファイルアップロード先へ移動

このSFTPのファイルアップロード先のフォルダ「upload」に移動します。

sftp> ls
upload
sftp> cd upload/
sftp> pwd
Remote working directory: /upload

SFTPサーバ動作確認(アップロード)

SFTPサーバへファイルをアップロードします。

sftp> cd upload/
sftp> put test.txt
Uploading test.txt to /upload/test.txt
test.txt                                                                                                     100%    0     0.0KB/s   00:00
sftp>
sftp> ls
test.txt
sftp> quit

SFTPサーバ動作確認(ダウンロード)

SFTPサーバからファイルをダウンロード「します。

sftp> cd upload/
sftp> get test.txt
Fetching /upload/test.txt to test.txt
sftp> quit
[root@CetOS8]# ls
test.txt

以上がDockerコンテナ(SFTP)の起動と動作確認となります。

Docker「FTP」サーバの構築は以下の記事を参照

SFTPをすぐに構築したいときは参考にしてください。




エンジニアのオンライン学習

ITエンジニアにおすすめの教材、オンラインスクールです。
無料からエンジニアの学習ができる教材などまとめているので参考にしてください。

おすすめオンライン教材
自宅で学習ができるオンラインスクール

ITエンジニアの開発・検証・学習としてインターネット上で専用のサーバ(VPS)を利用しましょう!
実務経験はVPSで学べます。



コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

ABOUT US
げんき☆ひろき
インターネット関連のSEをやっています。 ネットワーク、サーバー、ストレージ、仮想基盤まで幅広く手を出しており、MVNOの構築経験もあります。 現在は、Pythonを使ったプログラミングの開発をしネットワークの自動化ツールを作成しています! Pythonの入門書も作成しているので、ぜひ参考にしてください!