4
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

はじめての docker push

Posted at

(今更ながら)はじめての docker push で細かいところで躓いたので残しておきます。

予め、DockerHub でアカウントを作成しておきます。
https://hub.docker.com/

1. Docker コマンドを一般ユーザで実行可能にする

自分の環境では sudo docker push が動作しなかった(コマンド打っても応答なし)ため、sudo 無しで実行できるように準備しておきます。

※このユーザ名は自分のローカル環境上のユーザです(DockerHubのアカウント名ではない)

sudo usermod -g docker {自分のユーザ名}
sudo gpasswd -a {自分のユーザ名} docker

docker info など実行して sudo なしで実行できることを確認します。
もし動作しない場合は、OSの再起動行えばうまくいくはず。

2. Dockerfile を作る

何でも良かったのですが、apache spark のイメージを作りました。
alpine は軽量で嬉しいです。

Dockerfile
FROM alpine:3.10
LABEL maintainer "blueskyarea"

ENV SPARK_VERSION=2.1.1
ENV HADOOP_VERSION=2.7

RUN apk add --no-cache curl bash openjdk8-jre libc6-compat \
  && ln -s /lib64/ld-linux-x86-64.so.2 /lib/ld-linux-x86-64.so.2 \
  && wget https://archive.apache.org/dist/spark/spark-${SPARK_VERSION}/spark-${SPARK_VERSION}-bin-hadoop${HADOOP_VERSION}.tgz \
  && tar -xvzf spark-${SPARK_VERSION}-bin-hadoop${HADOOP_VERSION}.tgz \
  && mv spark-${SPARK_VERSION}-bin-hadoop${HADOOP_VERSION} spark \
  && rm spark-${SPARK_VERSION}-bin-hadoop${HADOOP_VERSION}.tgz

EXPOSE 8080
3. Docker イメージを作る
docker build --tag=blueskyareahm/spark-base:2.1.1-hadoop2.7 .
$ docker images
REPOSITORY                 TAG                 IMAGE ID            CREATED             SIZE
blueskyareahm/spark-base   2.1.1-hadoop2.7     e2829908cbf7        xx hours ago        318MB
4. Docker イメージを push する

まず、docker login を行います。
Username と Password は DockerHub のアカウント作成時に登録したものです。

$ 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:
Password: 
Login Succeeded

docker push していきます。特に問題なければ、すぐに終わります。

docker push blueskyareahm/spark-base:2.1.1-hadoop2.7
つまづいたところ

docker push 時に "denied: requested access to the resource is denied" のメッセージが表示され push 出来なかった。

$ docker push blueskyarea/spark-base:2.1.1-hadoop2.7
The push refers to repository [docker.io/blueskyarea/spark-base]
5ffdb0ebdb14: Preparing 
531743b7098c: Preparing 
denied: requested access to the resource is denied

DockerHub 上の docker_id と docker Image 名が一致していないことが問題。
docker_id は blueskyareahm ですが
最初、blueskyarea/spark-base:2.1.1-hadoop2.7 でイメージを作成していました。
そのため、アクセス拒否されていたようです。

以下の手順にて、正しい名前でイメージ名を作成したあと

# 間違った名前のイメージを元に abc というコンテナを作成
docker run -d --name abc blueskyarea/spark-base:2.1.1-hadoop2.7
# abc コンテナを元に、正しい名前で commit する。
docker commit abc blueskyareahm/spark-base:2.1.1-hadoop2.7

docker push で上手くいきました。

docker push blueskyareahm/spark-base:2.1.1-hadoop2.7
4
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
4
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?