どうも!めがとんです!
今回は現在勉強中のDockerに関する、基礎知識をまとめて見ました。
興味がある方は最後まで読んでいただけると幸いです。
Docker Hubとは
Docker imageが管理されているレジストリの名前(Git Hubみたいな感じ)。
Docker imageを管理するレジストリは他にもあるが、
その一つがこのDocker Hubである。
リポジトリーの共有
Git Hub同様、Docker Hubもリポジトリーで管理することが可能。
そのリポジトリー(image)をチームなど、
様々な人と共有することで簡単に開発環境を整えられる。
Git Hubでいう、リモートリポジトリをローカルにクローンするイメージ。
Docker Hubを使用するには
Docker HubのWebサイトから新規登録を行う。
ターミナルを開き、ログインを行う。
$ docker login
Login Succeeded
と表示されれば、ログイン成功。
リポジトリー(image)をローカル(Host)へPullする
Docker Hubで管理しているリポジトリーをローカルにプルする。
$ docker pull <imageの名前>
例えば、testOSがリポジトリ名であれば
$ docker pull testOS
これで、リポジトリのクローンがローカルに完成。
コンテナを作成する
testOSが入ったコンテナで作業するために、runコマンドを実行する。
$ docker run -it testOS bash
これでコンテナを作成し、コンテナの中に入ることが出来る。
ここで一旦次のパートで情報を整理する。
コンテナを作成する理由は?
先ほどDocker HubからtestOSというリポジトリー(image)をローカルにPullしました。
しかし、この時点ではローカル環境でtestOSを使うことは出来ません。
例えば、作成するアプリケーションの開発環境でtestOSが必要なので、
testOSを使えるようにしたいとする。
そこで、testOSが含まれるコンテナを作成し、
そのコンテナの中で作業することで、testOSが使えるようになる。
コンテナから抜けるには
$ exit
このコマンドで、コンテナから抜けることが出来る。
ローカルで管理しているコンテナの確認方法
$ docker ps -a
-aを付けないと、動いているコンテナしか表示されないので、
全て表示するには-aが必要。
ローカルで管理しているイメージの確認方法
$ docker images
exitした後に、再度コンテナの中に入る方法
runした後にexitコマンドでコンテナから抜けると、コンテナはexited状態になる。
このままではコンテナが起動しておらず、中に入ることが出来ないので、再度立ち上げる。
$ docker restart
その後、execコマンドで、再びコンテナに入るコマンドを打つ
$ docker exec -it <containerの名前> bash
Docker imageに変更を保存する方法
開発環境で、RubyやPHP、Javascriptが必要になったとする。
一人がコンテナの中で、Ruby、PHP,Javascriptを扱えるように設定した。
他の人も同じ環境構築をするのは手間も時間もかかり大変。
→ 一人が設定したコンテナの作業環境をimage(リポジトリ)に保存し、提供すれば解決!
$ docker commit <container> <image>
このコマンドで、コンテナの変更内容をimageに保存する。
Docoker Hubにimageをプッシュ前に、タグで名前を一致させる
予めDocker Hubでリポジトリを新規作成しておく。(ここではnew-repoとする)
名前が一致している必要があるので、タグを付ける。
$ docker tag old-repo:updated username/new-repo
old-repoが変更を加えたローカルのリポジトリで、タグが更新を表すupdated。
Docker Hubで新規作成した「new-repo」にusername/new-repoで名前を一致させる。
Docoker Hubにimageをプッシュする
$ docker push username/new-repo
これでDocker Hubで管理しているリポジトリにプッシュが完了
プルすることで、変更が加えられたimage(リポジトリ)をローカルで扱えるようになる。
imageの削除方法
$ docker rmi <image>
今回は以上になります!