Setup Ubuntu on Docker - TarosGitHub/EmbOSLab GitHub Wiki
以下の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の設定をして、接続する
# 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 <ユーザー名>@localhost -p <ポート番号>