Dockerfileをビルドしてdocker hubに公開する

Background vector created by brgfx – www.freepik.com
Dockerfileをビルドしてdocker hubに公開する
はじめに
今回はDockerfileを作成、ビルドしイメージを作成します。
そのイメージをdocker hubに公開したいと思います。
これにより色んな人へdockerイメージの配布ができますね!🙂
作業はWindows10で行いました。
Dockerfileの作成
Pythonとスクレイピングの環境を、dockerイメージとして作成してみたいと思います。
任意のフォルダにDockerfileを作成します。
参考までに私は以下の場所に置きました。
python3.6と、スクレイピングで要素を抽出するためのbeautifulsoup4をインストールします。
ついでにvimもインストールしました。
Dockerfileの中身は以下です。
1 2 3 4 5 6 |
FROM python:3.6 RUN apt-get update RUN apt-get install -y vim RUN pip3 install beautifulsoup4 RUN pip3 install html5lib |
Dockerfileイメージの作成
PowerShellを開きます。
カレントディレクトリを移動し、docker buildコマンドを実行します。
-tは名前ですので、任意で指定してください。
1 2 |
cd D:\docker\python-scraping\ docker build -t python-scraping ./ |
暫く待つとビルドが完了しますが、以下のような警告が表示されました。
Successfully tagged python-scraping:latest
SECURITY WARNING: You are building a Docker image from Windows against a non-Windows Docker host. All files and directories added to build context will have ‘-rwxr-xr-x’ permissions. It is recommended to double check and reset permissions for sensitive files and directories.
セキュリティ上の警告:あなたはWindows以外のDockerホストに対してWindowsからDockerイメージを構築しようとしています。 ビルドコンテキストに追加されたすべてのファイルとディレクトリは ‘-rwxr-xr-x’パーミッションを持ちます。 機密性の高いファイルやディレクトリに対するアクセス権を二重にチェックしてリセットすることをお勧めします。
Windowsのdockerで作成したためのパーミッションの警告のようです。
とりあえず進めます。
次にdockerコマンドでイメージがあるか確認します。
1 |
docker images |
以下のように表示されました。
「python-scraping」というイメージが作成されましたね!
1 2 |
REPOSITORY TAG IMAGE ID CREATED SIZE python-scraping latest b34a26c01exx About a minute ago 980MB |
きちんと環境が入っているか確認します。
dockerコンテナを起動します。
1 |
docker run -it --name ct-py-scraping python-scraping /bin/bash |
Pythonのバージョンの確認と、beautifulsoup4がインストールされていることを確認します。
大丈夫ですね。
1 2 3 4 5 6 7 8 9 10 11 12 13 |
root@7eb7719e96xx:/# python --version Python 3.6.8 root@7eb7719e96xx:/# pip list Package Version -------------- ------- beautifulsoup4 4.7.1 html5lib 1.0.1 pip 19.0.3 setuptools 40.8.0 six 1.12.0 soupsieve 1.9 webencodings 0.5.1 wheel 0.33.1 |
docker hubへアップロード
docker hubでは、すでに公開されているdockerイメージの検索や、独自のイメージを公開することができます。
無料では、プライベートリポジトリ(非公開リポジトリ)を1つ使うことができます。
公開リポジトリは無制限です。
docker hubを利用するには、アカウントが必要になります。
まだ取得していない場合は、前回の記事でアカウントの作成方法をまとめましたので参考ください。
公開リポジトリであれば、コマンドから直接プッシュすることができます。
まずは、すでに作成したイメージに対して、dockerアカウント名とイメージのタグを指定してイメージを作成します。
PowerShellより以下のようにコマンドを打ちます。
1 |
docker tag b34a26c01xxx chigusaweb/python-scraping:latest |
docker imagesでイメージを確認します。
1 2 3 |
docker images REPOSITORY TAG IMAGE ID CREATED SIZE chigusaweb/python-scraping latest b34a26c0xxxx 23 hours ago 980MB |
上記のイメージをプッシュしてみます。
1 |
docker push chigusaweb/python-scraping:latest |
ログインしていないため、エラーになりました。
dockerでログインします。Username、Passwordを入力してログインします。
1 |
docker login |
Login Succeededとなったら、再度プッシュします。
1 |
docker push chigusaweb/python-scraping:latest |
暫く待つと完了します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
docker push chigusaweb/python-scraping:latest The push refers to repository [docker.io/chigusaweb/python-scraping] 9b8a23c0fdxx: Pushed d14d37a65cxx: Pushed 68e00a9afdxx: Pushed d0ad9c24b6xx: Pushed 22fc232df2xx: Mounted from library/python 8296c34d06xx: Mounted from library/python 4d29b148a1xx: Mounted from library/python bd5afbfde6xx: Mounted from library/python 0fe19df8b8xx: Mounted from library/python b17cc31e43xx: Mounted from library/python 12cb127eeexx: Mounted from library/python 604829a174xx: Mounted from library/python fbb641a8b9xx: Mounted from library/python latest: digest: sha256:5842d341296c8852a28d75e490b3188387156c96baxx size: 3063 |
以下のような感じで公開されました!
この公開されたイメージを使用するには、以下のコマンドでpullすることができます。
1 |
docker pull chigusaweb/python-scraping |
さいごに
dockerイメージを作成し、docker hubに公開しました。
このイメージを使ってのスクレイピングの実装は別な機会にまとめたいと思います。😐
シンプルで高機能なクリップボード履歴フリーソフト「Clibor」
Cliborはフリーソフトです。
普段よく文字を入力する方や、ブラウザに決まったキーワードを張り付ける方など、テキストの入力がとても便利になりますので是非ご利用ください!