Setup Ubuntu on Docker - TarosGitHub/EmbOSLab GitHub Wiki

Ubuntu(SSH, sudo, vim, gitなど)のDockerイメージ立ち上げ

以下のDockerfileを作成する。

<rootのパスワード><ユーザー名><パスワード>は任意の値を入力すること。

FROM ubuntu:latest

# Install tools
RUN apt-get update
RUN apt-get install -y build-essential git less vim sudo

# Install openssh-server
RUN apt-get update && apt-get install -y openssh-server
RUN mkdir /var/run/sshd
RUN echo 'root:<rootのパスワード>' | 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

# Create a user
RUN useradd -m <ユーザー名>
RUN echo '<ユーザー名>:<パスワード>' | chpasswd
RUN usermod -aG sudo <ユーザー名>
RUN chsh -s /bin/bash <ユーザー名>

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

dockerイメージをビルドする。

$ docker build -t <イメージ名> .
$ docker run -d -p <ポート番号>:22 -v <ホスト側ディレクトリ>:<ゲスト側ディレクトリ> --name <コンテナ名> <イメージ名>

例. ディレクトリ名の h8os は<ユーザー名>
$ docker run -d -p 2222:22 -v C:/workspace/ubuntuh8_share/h8os:/home/h8os --name ubuntuh8 ubuntu_for_h8

VSCodeでSSH接続する

ここを参照

  1. 鍵を生成する
  2. 鍵をアップロードする
  3. VSCodeの設定をして、接続する
# Read more about SSH config files: https://linux.die.net/man/5/ssh_config
Host localhost
    HostName localhost
    User <ユーザー名>
    Port <ポート番号>
    IdentityFile ~/.ssh/id_rsa

※SSH接続を試す

$ ssh <ユーザー名>@localhost -p <ポート番号>

参考

⚠️ **GitHub.com Fallback** ⚠️