概要
Dockerで仮想環境を構築して他人(他のPC)と共有したいという人が対象です。また、今回の仮想環境ではホストのディレクトリをマウントする方法でコンテナを作製します。
Dockerの詳しい話は他の記事に譲って、本記事では実装方法にフォーカスして紹介していきます。
私はDockerを勉強し始めて1週間程度しか経っていないため、間違いやご指摘があればよろしくお願いします。
私の環境はMacですが、windowsでも他記事を参考にしながらであれば読めると思います。(ターミナルに入力するコードは同じのはず、windows環境を所有しているので後日記載)
また、ここで作製した環境をVScode中で起動させてPythonを実行する方法は@katakakuさんの記事 https://qiita.com/katakaku/items/b8dcac4aa14d585e4038
を参考にしてください。
1.Docker Desktopの導入とDocker Hubアカウント作成
まず初めに以下のサイトで自分の環境に適したDocker Desktopをダウンロードしてインストールしてください。
https://www.docker.com/ja-jp/products/docker-desktop/
また、ダウンロードの隣にある"アカウント作成する"でアカウントを作成しましょう。
2.Imageのpull (docker pull)
今回はubuntuの仮想環境を構築するので以下のコードをターミナルに入力してubuntuのImageを取得しましょう。
docker pull ubuntu
これでubuntuのImageの取得に成功です。
以下のコマンドをターミナルで入力して成功を確認しましょう。
docker images
この後に以下のような出力が得られれば成功です。
REPOSITORY TAG IMAGE ID CREATED SIZE
ubuntu latest ca2b0f26964c 13 days ago 77.9MB
3.Containerの作製 (docker run)
今回はローカルのフォルダにアクセスできる仮想環境構築を行います。
docker run --name 任意の名前 -v 使用したいホストのディレクトリ:左のディレクトリの仮想環境中のディレクトリ -it ubuntu
docker run はコンテナを作成するためのコマンドです。
--name 任意の名前 はコンテナの名前を決定する部分です。
-v 使用したいホストのディレクトリ:左のディレクトリの仮想環境中のディレクトリ はホストのフォルダにアクセスするためのコマンドです。例えばホストのデスクトップ上のtestフォルダを仮想環境中の/usr/local/testで読み込むには以下のように読み替えてください。
使用したいホストのディレクトリ = デスクトップ上のtestフォルダの場所
左のディレクトリの仮想環境中のディレクトリ = /usr/local/test
私の環境では以下のようなコードで実行しました。
docker run --name test -v /Users/username/Desktop/test:/usr/local/test -it ubuntu
これでコンテナが作製されました。このときコマンド中:の前後にスペースをいれるとエラーがでます。
ターミナルが仮想環境のものになりますが
exit
で閉じることが可能です。
以下のコマンドを実行してコンテナが作製されたことを確認しましょう。
docker ps -a
コンテナを再起動したい場合は
docker start test
コンテナの操作をターミナルで行いたい場合はdocker startを実行してから
docker attach test
を実行してください。
4.Repositoryの作製
Docker Hubでリポジトリを作成しましょう。
https://hub.docker.com/ にアクセスして一番上のRepositoryをクリックしてRepository画面に入る。
Create repository をクリックしてリポジトリ作成画面に入る。
Repository nameの欄に任意の名前を入力する。今回はtest_ripository とする。
Createをクリックする。
この操作でtest_ripository という名前のリポジトリが作成できた。
5.Repositoryに作製したContainerをpush(docker push)
作成したtest_ripository にtest コンテナをpushする手順を紹介する。
まずはじめに以下をターミナルで実行してcommitする。
docker commit test Docker_user_name/test_ripository
ここでDocker_user_nameはDocker Hubに登録したときに決定した名前です。
次に以下をターミナルで実行してリポジトリにpushする。
docker push Docker_user_name/test_ripository
これでpushが成功するはずです。
7.おわりに
ここまでの流れでタイトル通りに仮想環境を構築できたと思います。
私も初学者なので勉強して誤りに気付けば随時変更していきます。