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>