LoginSignup
25
43

More than 3 years have passed since last update.

WindowsでDocker Hubからイメージをダウンロードしたりアップロードしたりしてみる

Last updated at Posted at 2018-01-06

概要

Windows10にDocker環境を構築したのでいろいろ試してみた
今回はDocker コンテナの元となるイメージのダウンロード、アップロードなどDockerをインストールして最初にやることのコマンド一覧とまとめ

DockerとDockerイメージの関連は以下を参照

 Dockerの基本機能と全体像のイメージを整理してみる

動作環境とDocker環境構築方法は以下を参照

  • Windows 10 Pro 64bit
  • Docker for Windows

 WindowsでDocker環境を試してみる

できるようになること

  • 自分のローカルマシンにDocker Hubから欲しいイメージをダウンロード
  • 自分のイメージをDocker Hubにアップロード

およその作業時間

30分

事前準備

Docker HubにイメージをアップロードするためにDocker Hubのアカウントが必要
(自分のローカルマシンにイメージをダウンロードするだけなら不要)
アカウントは以下のページで作成可能

 Docker Hub

任意のID、メールアドレス、パスワードを登録するだけでアカウント作成できる

参考書籍

プログラマのためのDocker教科書 第3章

わかりやすくてDockerの入門書的な良本です^^
みんな購入していて売れ行き好調なのか第2版が発売されていたのでリンク更新

【Kindle版】プログラマのためのDocker教科書

使用コマンド一覧

docker pull イメージ名:タグ名
docker images
docker inspect イメージ名
docker tag 元のイメージ名:タグ名 ユーザ名/イメージ名:タグ名
docker search イメージ名
docker rmi イメージ名
docker login
docker push ユーザ名/イメージ名:タグ名
docker logout

docker pull イメージ名:タグ名

Docker Hubからイメージをダウンロードするコマンド
タグ名は任意項目
イメージ名:タグ名 でタグ名にバージョンが指定できるが指定しないと最新をダウンロードする
pullだけであればDocker Hubのアカウントは不要(もちろんログインも不要)

> docker pull ubuntu
Using default tag: latest
latest: Pulling from library/ubuntu
50aff78429b1: Pull complete
f6d82e297bce: Pull complete
275abb2c8a6f: Pull complete
9f15a39356d6: Pull complete
fc0342a94c89: Pull complete
Digest: sha256:ec0e4e8bf2c1178e025099eed57c566959bb408c6b478c284c1683bc4298b683
Status: Downloaded newer image for ubuntu:latest

docker images

ローカルマシンにダウンロードしているイメージの一覧を表示するコマンド

> docker images
REPOSITORY                  TAG                 IMAGE ID            CREATED             SIZE
ubuntu                      latest              00fd29ccc6f1        2 weeks ago         111MB

主要項目の説明は以下の通り
* REPOSITORY イメージ名
* TAG タグ名(通常はバージョン)
* IMAGE ID イメージID
* CREATED 作成日

docker inspect イメージ名

イメージの詳細を確認するコマンド
詳細情報がJSON形式で返却される

> docker inspect ubuntu
[
    {
~~~省略~~~
        "Architecture": "amd64",
        "Os": "linux",
        "Size": 110512187,
        "VirtualSize": 110512187,
~~~省略~~~

docker tag 元のイメージ名:タグ名 ユーザ名/イメージ名:タグ名

ダウンロードしたイメージにわかりやすいタグを付けるコマンド
慣習的に付けるユーザ名はDocker HubのID、タグ名はバージョンが良い

> docker tag ubuntu user/server01:0.1

> docker images
REPOSITORY                  TAG                 IMAGE ID            CREATED             SIZE
ubuntu                      latest              00fd29ccc6f1        2 weeks ago         111MB
user/server01               0.1                 00fd29ccc6f1        2 weeks ago         111MB

docker imagesコマンドで確認
タグを付けただけでイメージの実体は同じため同じイメージIDとなる

docker search イメージ名

Docker Hubに公開されているイメージを検索するコマンド

> docker search ubuntu
NAME                                                   DESCRIPTION                                     STARS               OFFICIAL            AUTOMATED
ubuntu                                                 Ubuntu is a Debian-based Linux operating s...   7032                [OK]
dorowu/ubuntu-desktop-lxde-vnc                         Ubuntu with openssh-server and NoVNC            153                                     [OK]

主要項目の説明は以下の通り
* NAME イメージ名
* STARS お気に入り数
* OFFICIAL 公式イメージだと[OK]となる
* AUTOMATED Dockerfileをもとに自動生成されたイメージだと[OK]となる

Dockerfileについては別の機会に投稿予定、、、

注意

docker search などDocker Hubに接続するコマンド(docker pull/docker login/docker searchなど)で以下のエラーが出た場合はDockerのNetworkのDNS設定をFixedに変更してみる

Error response from daemon: Get https://index.docker.io/v1/search?q=ubutu&n=25: dial tcp: lookup index.docker.io on 192.168.1.1:XX: read udp 192.168.2.2:XXXXX->192.168.11.1:XX: i/o timeout

image.png

Settingsの開き方は以下を参照
 WindowsでDocker環境を試してみる

docker rmi イメージ名

ダウンロードしたイメージを削除するコマンド

> docker rmi user/server01:0.1
Untagged: user/server01:0.1

docker login

Docker HubにID/パスワードでログインするコマンド

> docker login
Login with your Docker ID to push and pull images from Docker Hub. If you don't have a Docker ID, head over to https://hub.docker.com to create one.
Username: IDxxx
Password:
Login Succeeded

docker push ユーザ名/イメージ名:タグ名

Docker Hubに指定したイメージをアップロードするコマンド

> docker push user/server01:0.1
The push refers to a repository [docker.io/user/server01]
f17fc24fb8d0: Layer already exists
6458f770d435: Layer already exists
5a876f8f1a3d: Layer already exists
d2f8c05d353b: Layer already exists
48e0baf45d4d: Layer already exists
0.1: digest: sha256:f871d0805ee3ce1c52b0608108dbdf1b447a34d22d5c7278a3a9dd78fc12c663 size: 1357

注意

Docker Hubにpullする場合は、イメージのユーザ名とDocker HubのIDが一致しないと以下のエラーが発生する

> docker push user/server01:0.1
The push refers to a repository [docker.io/user/server01]
f17fc24fb8d0: Preparing
6458f770d435: Preparing
5a876f8f1a3d: Preparing
d2f8c05d353b: Preparing
48e0baf45d4d: Preparing
denied: requested access to the resource is denied

user部分をdocker tagコマンドでDocker HubのIDに変更して再度pushすればOK

docker logout

Docker Hubからログアウトするコマンド

> docker logout
Removing login credentials for https://index.docker.io/v1/
25
43
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
25
43