LoginSignup
3
2

More than 5 years have passed since last update.

Docker HubにカスタムイメージをpushしてCoreOSに取り込むチュートリアル

Last updated at Posted at 2016-02-11

CoreOS のように Docker コンテナの pull 以外にソースの出入り口がない環境では、Docker Hub (またはその他のリポジトリ) を経由してイメージを取り込む必要があります。

以下は、Docker Hub を経由して CoreOS 上にイメージを取り込むチュートリアルです。

チュートリアル

Docker Hub 上にリポジトリを作る

何はともあれアカウントを取得して、リポジトリを作りましょう。

  1. Docker Hub アカウントを取得
  2. "Create Repository" でリポジトリを作成
    • 今回は 1000k/rails-chat/ という名前で public リポジトリを作ってみました

Docker CLI からイメージをリポジトリに登録する

お手元の CLI からイメージを転送します。

  1. docker tag でイメージにタグをつける
  2. docker login して Docker Hub に接続する
  3. docker push でイメージを Docker Hub に登録する

例:

# イメージ一覧を確認
docker images

# イメージ名か IMAGE ID を指定してタグを付ける
# ※{user_name}/{image_name}:{tag} というように、先頭に `{user_name}/` を付けないと「rootリポジトリに push はできません」というエラーが出る
docker tag 7d9495d03763 1000k/rails-chat:latest

# Docker Hub にログイン
docker login --username=yourhubusername --email=youremail@company.com

# push する
docker push 1000k/rails-chat:latest

CoreOS に取り込む

core@core-01 ~ $ docker pull 1000k/rails-chat
core@core-01 ~ $ docker run -p 80:3000 -d 1000k/rails-chat
core@core-01 ~ $ docker ps -l
CONTAINER ID        IMAGE               COMMAND                CREATED             STATUS              PORTS                     NAMES
2e9cd5355bb2        1000k/rails-chat    "rails s -b 0.0.0.0"   4 seconds ago       Up 4 seconds        0.0.0.0:32768->3000/tcp   reverent_bardeen

以上。素敵な鯨ライフを。

トラブルシューティング

docker login が 403 Forbidden で弾かれる

Docker Toolbox Windows版で docker login しようとしたら、正しいID/PWなのになぜか弾かれました。

$ docker login --username=yourhubusername --email=youremail@company.com
Password: {合ってるパスワード}

Error response from daemon: Unexpected status code [403] : <html><body><h1>403 Forbidden</h1>
Request forbidden by administrative rules.
</body></html>

こんな時は以下のコマンドで PowerShell 経由で叩くようにすると、なぜかうまくいきました。

$ docker-machine ssh default
$ docker login --username=yourhubusername --email=youremail@company.com
Password: {合ってるパスワード}

WARNING: login credentials saved in /home/docker/.docker/config.json
Login Succeeded

根本的な直し方では無いですが、ひとまずこれで何とかなります。

docker pull してもイメージが落ちてこない

core@core-01 ~ $ docker pull 1000k/rails-chat
Using default tag: latest
Pulling repository docker.io/1000k/rails-chat
Tag latest not found in repository docker.io/1000k/rails-chat

エラーメッセージの通り、:latest というタグを付けたイメージを push していないからです。上記のチュートリアルを参考に :latest というタグを付けたイメージを作って、docker push しましょう。

参考

3
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
2