さいごにはじめに本記事ではDockerfileを利用してLinux(Ubuntu)のユーザー作成、そのユーザーへのSSHアクセス、nvmをインストールする方法を説明します。別のことをやりたい場合でもこちらのサンプルをご利用頂くことが可能だと思います。Dockerファイルでユーザーの切り替えってどうやるの?ディレクトリの移動ってどうするの?作成したユーザーにnvmをインストールしたけど正常に動作しない、というアナタと私向けの記事となります。Dockerfileを初めて使います、という方もこちらも記事をご参考にして頂けるのではないかと思います。Windowsを前提としている箇所もありますので、気になる方はこちらの記事をご参照下さい。作成したDockerfile作成したコードはこのような形になりました。作成しているユーザーとそのパスワードは以下としています。基礎から、という意味では上記で記述した2つのコードを適当なフォルダに保存をして下さい。それぞれの名前は”Dockerfile”と”init.sh"である必要があり、同じフォルダに入れてないとビルドの際にエラーとなります。該当のフォルダを開き、そこでSHIFTキーを押しながら右クリックすることでPowerShellをこのフォルダで開くことが可能です。PowerShell上で以下のコマンドを実行して下さい。赤字の箇所はDokcerコンテナのイメージ名とタグになりますので、任意の名前で問題ありません。Imageを作成してくれるのです。lsのコマンドで確認することが可能です。desktopで確認することも可能です。Imageを作成することが出来ました。作成したいものが異なる場合でもこちらのコードをベースとして作成することが可能かと思います。Imageを作成するためのひな型をこちらで選択します。今回は純粋なUbuntuの最新版を利用するため、以下のようにしています。ubuntu:latestRUNコマンドImageのひな型を作成した後に、実行するコマンドをRUNコマンドによって記述しています。コマンドのインストール等はこちらで実施していくのが良いでしょう。updateして、その後に必要なコマンドをインストールしていく手順はご経験があるのでは?と思います。sshのみインストールのコマンドを分離しているのは...私のおまじないで、正しい手順を踏めば不要なはずです。本来であれば対話型のコマンドでインストールする必要のあるsshがこの方法であれば対話無しにインストールが完了するのでこのやり方としています。vimUSERコマンドこちらのコマンドではRUNのコマンドを実行するユーザーの切り替えを行うことが可能です。今回はrootユーザーからpiユーザーを作成し、nvmのコマンドをpiユーザー向けにインストールするため、こちらのコマンドでユーザーの切り替えを行っています。piWORKDIRコマンドこちらのコマンドではRUNコマンドやその他のコマンドを行うディレクトリ(フォルダ)を変更するために使用します。ファイル操作のコマンド等はどのディレクトリを起点として実行されているかを意識する必要があります。指定がなければ全てのコマンドが/のディレクトリで実行されます。/home/piCOPYコマンドこちらのコマンドではそのまんま、ホスト(今回はWindows)のフォルダにあるファイルをDockerコンテナ内にコピーするために使用します。類似のコマンドでADDがありますが、単純にファイルをコピーすることを目的とする場合はCOPYコマンドを利用することが推奨されているようです。.ENVコマンド環境変数を設定するのに使用することが出来ます。設定した環境変数は$を付けることでその後、利用することが可能です。\CMDコマンドコンテナの起動時に実行するコマンドを指定することが可能です。コンテナ起動時のコマンドとして指定することも可能ですが、こちらに指定しておけばコンテナ起動の際にオプションとしての指定が不要となります。こちらではstart.shのスクリプトを実行するようにしていますが、こちらはコンテナの起動時にsshのサービスを有効にするためのスクリプトとなっています。通常のUbuntuではsystemctlのコマンド等を利用して、起動時のサービスの指定を行うことが出来るのですが、残念ながらコンテナではできません。Imageで利用可能なポート番号を指定します。今回はこのコンテナにSSHでアクセスを行いますので、SSHポート番号である22のみを指定しています。Desktopのイメージ一覧から起動していきます。RUNをクリックします。Optionの設定としはPortsの項目だけ設定します。こちらの例ではポート番号49555でコンテナのSSH用ポート22にアクセスできる設定となります。コンテナが無事に起動すると以下のような緑色のアイコンで確認が出来るかと思います。Teratermでアクセスします。Windowsを使っているならlocalhost、TCPポートは先ほど設定した49555とします。正常にアクセスが可能であればユーザ名とパスワードの確認が入りますので、Dockerfileで指定したpi/rapsberryを入力し、OKとして下さい。このような形でアクセスが出来ました。nvmのコマンドも利用が可能なようです。これで環境構築が完了しました。さいごに本記事ではDockerfileによるUbuntuの環境構築を行い、Dockerfileによるコンテナ作成の基礎を説明しました。Dockerコンテナは基本的に最小のサービスを動かすために動作させるものなので、本来はこのようなUbuntu環境を構築するためのものではないのですが、Windows上で簡単にLinuxを動かしたいという方にはピッタリなのではないでしょうか?ではまた。以下の記事の続きです。以下の記事の続きです。コメントをキャンセルメールアドレスが公開されることはありません。*ウェブサイト次回のコメントで使用するためブラウザーに自分の名前、メールアドレス、サイトを保存する。ネットワークエンジニア歴は10数年で、AIだとかIoTだとか新しいものに何でも興味津々です。良かったらご連絡下さい。ネットワークエンジニア歴は10数年で、AIだとかIoTだとか新しいものに何でも興味津々です。良かったらご連絡下さい。