Docker Hubにイメージを上げてみる
2019/08/29 記事更新(imageからpushする方法を追記しました)
こんにちは。
先日、こんな記事を書きました。
これ自体、自分としてはまだまだ未完なので、Dockerを学び直して出直したいところです。
飲みながら、この記事の話をしていたのですが、
「せっかくならDocker Hubにあげなよ」と言われたので、試しに上げてみることにしました。
事前に必要なこと
おそらく、Dockerを使う人はほとんど登録しているかと思うのですが、
Docker Hubへの登録が必要になります。
済ませている人は次の項目にいきましょう。
今回使うもの
今回使うリポジトリはこちらになります。
kaedemalu/tf_alpha2.0
(今後はゆるゆるとアップデートするのでお待ちください)
イメージを作る
こちらのリポジトリをクローンして、READMEに書いてあるコマンドを一通り打ち込んでください。
打ち込んだあとは、別タブで以下のコマンドを入力して、コンテナがあるか確認してください。
$ docker container ls CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 1af3bcfa251d tensor-alpha "bash" 12 seconds ago Up 11 seconds 0.0.0.0:8888->8888/tcp zealous_heyrovsky
CONTAINER IDとかところどころ違うところはあるとは思いますが、だいたいこのように出力されていれば一旦大丈夫です。
上のコマンドを打ったシェルでまた以下のコマンドを打って、イメージの作成を行います。
$ docker container commit 1af3bcfa251d kaedemalu/tensorflow:2.0_alpha sha256:8a121750495d44ee91f8db8c700171606cffd24bae466849a5341629f436f2a9
sha256から始まるものが出力されたと思います。
なのでこれでイメージがあるか確認します
$ docker image ls REPOSITORY TAG IMAGE ID CREATED SIZE kaedemalu/tensorflow 2.0_alpha 8a121750495d 57 seconds ago 1.22GB
ちゃんとイメージが作成されていました。
良い感じ。
(でもサイズが重いんだよね、もっと軽くしたい)
Docker Hubにpushする
さて、この記事のミソかもしれないDocker Hubへのpushのときです。
pushする前に上で登録したアカウントを使ってログインします。
$ docker login Authenticating with existing credentials... Login Succeeded
僕は少し昔に多分ログインしていたので、上みたいな結果でしたが、
遠くの記憶ではDocker Hub登録時のアカウント名とパスワードを聞かれたはず。
さて、ログインも完了したので、pushしていきます。
$ docker push kaedemalu/tensorflow:2.0_alpha The push refers to repository [docker.io/kaedemalu/tensorflow] b7995ea98055: Pushed a147495ba5e4: Pushed be4abbc4e820: Pushed ebe897fdbd91: Pushed 23bcd76a34dc: Pushed b57c79f4a9f3: Mounted from library/ubuntu d60e01b37e74: Mounted from library/ubuntu e45cfbc98a50: Mounted from library/ubuntu 762d8e1a6054: Mounted from library/ubuntu 2.0_alpha: digest: sha256:f1afa3fce8bb65356ddf3c82452b24001dc4cec33785887b0e58287e01d6f977 size: 2205
こんな感じでpushできたみたいなので、Docker Hubで自分のページに行ってみましょう。
しっかりアップされていましたね!
imageからpushする方法(追記内容)
docker build
まで済ませてください
タグをつける
Dockerfileやdocker-compose.yamlからbuildできたらimageに対してtagをつけます。
tagをつける前のimageの状況としてはこんな感じ
$ docker image ls | grep tensor-alpha tensor-alpha latest b54653024c82 3 months ago 1.21GB
tagをつけていきます。
$ docker tag tensor-alpha:latest kaedemalu/tensorflow:2.0_alpha
これでtagをつけられたので確認してみます。
$ docker image ls | grep tensorflow kaedemalu/tensorflow 2.0_alpha b54653024c82 3 months ago 1.21GB
できていそうですね!
それでは、Docker Hubにpushしましょう。
$ docker push kaedemalu/tensorflow:2.0_alpha
あとは、Docker Hubにimageがあるか確認しましょう。
余談と新たな発見
途中、以下の記事を参考にさせていただいたのですが、そんなこともできるのかと。
DockerImageをDockerHubに登録の仕方
GitHubとの連携できるのは流石に発見でした。
インフラエンジニアにもGithubを草原にできるチャンスが到来したことを夜中の12:30に確信しました。
もちろん登録しました。
僕の書くべきところは書いたので、Githubとの連携は皆さんもリンクを参考にしてみてください。
もう一つDjangoのDockerのリポジトリあるけど、あれ、docker-compose使ってんじゃん......。↓
kaedemalu/django-maria