1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

SSHできるDockerコンテナの作り方、VSCode Remote-SSHを添えて

Last updated at Posted at 2021-08-05

1. Docker環境構築

https://docs.docker.jp/engine/examples/running_ssh_service.html

を参考にしてDockerFileファイルを作る。
ファイル名はpython-testとしている。

FROM python

RUN apt-get update && apt-get install -y openssh-server
RUN mkdir /var/run/sshd
RUN echo 'root:creencast' | chpasswd
RUN sed -i 's/#PermitRootLogin prohibit-password/PermitRootLogin yes/' /etc/ssh/sshd_config

# SSH login fix. Otherwise user is kicked off after login
RUN sed 's@session\s*required\s*pam_loginuid.so@session optional pam_loginuid.so@g' -i /etc/pam.d/sshd

ENV NOTVISIBLE "in users profile"
RUN echo "export VISIBLE=now" >> /etc/profile

EXPOSE 22
CMD ["/usr/sbin/sshd", "-D"]
  • [補足]

    • PermitRootLoginの初期値が、「without-password」から「prohibit-password」に変わっていたので修正している。
    • rootユーザのパスワード設定処理の「root:creencast」は適切に変更すること。
    • rootユーザで開発したくない場合は、DockerFileに以下のようにユーザ追加命令を追加する。
      RUN useradd --shell /bin/bash -u 1000 -m user && echo "user:user" | chpasswd
  • 以下のコマンドを上記のDockerFileがあるディレクトリで実行する。

docker build -t python-test -f python-test ./
docker run -d -P --name python-test python-test
  • docker port python-test 22を実行してコンテナのポート22が、ホストのどのポートに割り当てられているか確認する。
    以降のコマンドは、以下のポート番号を例として使う。
0.0.0.0:49153
:::49153

2. VScodeインストール

  • https://code.visualstudio.com/download からdebファイルをダウンロード
  • sudo apt install ./download/code_1.56.2-1620838498_amd64.deb
    ※:dpkgでインストールするやりかたは古いらしい。
  • ExtenstionsでRemote-SSHをインストールする。

3. VScodeでDocker環境にsshする

  • VSCode左側の「Remote Explore」>「SSH TARGET」> 「+」ボタンを押す。
  • ログインコマンドを聞かれるので、ssh root@0.0.0.0 -p 49153と入力する。
  • 設定の保存先を聞かれるので、/home/<ユーザ名>/.ssh/configを選択する。(他の選択肢はよくわからない)
  • 「SSH TARGET」に「0.0.0.0」が追加されるので選択する。
  • ログインパスワードを聞かれるので、入力する。
  • 下段にbashが表示されればOK。あとはDockerのコンテナ内の環境で開発ができる。

補足

ホスト側でインストールしたextensionsはログイン先では使用できない。
ログイン先毎にインストールする必要がある。ホスト側でインストールしたものを使用可能する方法があるかは不明。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?