Dockerラーニング2-centos7-python3.6環境をすばやく構築する

はじめに

コンピューターにpython3.6環境をセットアップするとき、次にコンピューターを変更するとき、またはLinuxシステムに変更するときは、コンピューターを再構築し、環境変数を設定し、pipをダウンロードするなどの操作を行う必要があります。
しばらくすると、pip.exeがScripsディレクトリに見つかりませんでした。また、pipは内部コマンドでも外部コマンドでもありません。また、pip:コマンドも見つかりません。環境のインストール数が多すぎると、ひどい涙になります。
多くの小さなパートナーにとって、環境の構築は学ぶのに障害になっています。今日からドッカーを学ぶために、環境の問題についてお別れします~~~

検索検索ミラー

docker search:Docker Hub(https://hub.docker.com)から指定された画像を検索します
たとえば、centos7環境に基づいてインストールされたpython3.6バージョンをここで検索します

自動ビルドについては、公式ドキュメントを確認できます:https://docs.docker.com/docker-hub/builds/#how-automated-builds-work

docker search python

[ root@yoyo ~]# docker search python
NAME                             DESCRIPTION                                     STARS               OFFICIAL            AUTOMATED
python                           Python is an interpreted, interactive, objec…   4288[OK]                
django                           Django is a free web application framework, …   847[OK]                
pypy                             PyPy is a fast, compliant alternative implem…   193[OK]                
kaggle/python                    Docker image for Python scripts run on Kaggle   123[OK]
arm32v7/python                   Python is an interpreted, interactive, objec…   37                                      
centos/python-35-centos7         Platform for building and running Python 3.5…   36                                      
joyzoursky/python-chromedriver   Python with Chromedriver,for running automa…   33[OK]
circleci/python                  Python is an interpreted, interactive, objec…   29                                      
nikolaik/python-nodejs           Python with Node.js                             18[OK]
arm64v8/python                   Python is an interpreted, interactive, objec…   17                                      
centos/python-36-centos7         Platform for building and running Python 3.6…   17                                      
centos/python-27-centos7         Platform for building and running Python 2.7…   15                                      
iron/python                      Tiny Python Microcontainer                      9                                       
publicisworldwide/python-conda   Basic Python environments with Conda.6[OK]
dockershelf/python               Repository for docker images of Python. Test…   4[OK]
i386/python                      Python is an interpreted, interactive, objec…   3                                       
bitnami/python                   Bitnami Python Docker Image                     3[OK]
komand/python-plugin             DEPRECATED: Komand Python SDK                   2[OK]
centos/python-34-centos7         Platform for building and running Python 3.4…   2                                       
muccg/python-base                Base images that use python                     1[OK]
amd64/python                     Python is an interpreted, interactive, objec…   1                                       
ccitest/python                   CircleCI test images for Python                 0[OK]
saagie/python                    Repo for python jobs                            0                                       
qbtrade/python                   python 3.6.5with requirements last update s…   0                                       
openshift/python-33-centos7      DEPRECATED: A Centos7 based Python v3.3 imag…   0[root@yoyo ~]#

プルダウンロードミラー

ダウンロードしたい上記のミラーイメージ centos / python-36-centos7をダウンロードして、ローカルにダウンロードします

docker pull centos/python-36-centos7

[ root@yoyo ~]# docker pull centos/python-36-centos7
Using default tag: latest
latest: Pulling from centos/python-36-centos7
8 ba884070f61: Pull complete 
c3dca185eb14: Pull complete 
ee720ba20823: Pull complete 
497 ef6ea0fac: Pull complete 
ebf1fb961f61: Pull complete 
b8249f70ce00: Pull complete 
ebd817e2efe7: Pull complete 
d3d10dd0937c: Pull complete 
a8ad47ec8182: Pull complete 
Digest: sha256:d10c46b6db436357965a96716e9f5d230d9b1a58c6db1f0c4f43c1fb1994cd79
Status: Downloaded newer image for centos/python-36-centos7:latest
[ root@yoyo ~]#

画像ローカルミラービュー

Dockerイメージを使用して、ローカルにダウンロードされたイメージを表示します

docker images

[ root@yoyo ~]# docker images
REPOSITORY                 TAG                 IMAGE ID            CREATED             SIZE
centos/python-36-centos7   latest              b8d15efaa8ec        2 months ago        651MB
ubuntu                            15.10               9b9cb95443b5        2 years ago         137MB
training/webapp               latest              6fae60ef3446        4 years ago         349MB

インタラクティブコンテナを実行する

Dockerは、分離されたコンテナーでプロセスを実行します。 docker runコマンドを実行すると、Dockerはプロセスを開始し、その排他ファイルシステム、ネットワークリソース、およびプロセスグループを、このプロセスをこのプロセスのルートプロセスとして割り当てます。
コンテナが起動すると、実行するバイナリファイル、公開されているネットワークポートなどがイメージで定義されている可能性がありますが、ユーザーはdockerrunコマンドを使用して再定義できます。
最も基本的なdockerrunコマンドの形式は次のとおりです。

$ sudo docker run [OPTIONS] IMAGE[:TAG] [COMMAND] [ARG…]

たとえば、ここでcentos7を起動し、インタラクティブモードに入り、dockerの2つのパラメーター-i -tを使用して、dockerによって実行されているコンテナーが「話す」機能を実現できるようにします。

docker run -i -t centos/python-36-centos7 /bin/bash

次のようにcentosターミナルに入った後、pythonインタラクティブ環境に入り、「hello world!I'm comeing !!!」と出力し、最後に終了して終了します。

[ root@yoyo ~]# docker run -i -t centos/python-36-centos7 /bin/bash(app-root) python
Python 3.6.3(default, Mar 202018,13:50:41)[GCC 4.8.520150623(Red Hat 4.8.5-16)] on linux
Type "help","copyright","credits" or "license"for more information.>>>print("hello world! I’m comming!!!")
hello world! I’m comming!!!>>>exit()(app-root) exit

バックグラウンドモードで開始

Run plus -i -tは、インタラクティブモードに入ります。インタラクティブモードに入ってスクリプトを直接実行したくない場合は、echo "hello world"などの直接実行を使用すると、画面に「helloworld」と出力されます。

docker run centos/python-36-centos7 /bin/echo “hello world”

フォアグラウンドで実行したくない場合は、通常、オペレーティング環境でバックグラウンドをハングアップすることを選択します。-dパラメーターを追加するだけです。

docker run centos/python-36-centos7 /bin/echo “hello world”

[ root@yoyo ~]# docker run centos/python-36-centos7 /bin/echo "hello world"
hello world
[ root@yoyo ~]# docker run -d centos/python-36-centos7 /bin/echo "hello world"
1 e5c22451bf2215f6c098e066b74363f1db9cde97e9ecea02947ccbbf2fa7e8f
[ root@yoyo ~]#

-dを使用してバックグラウンドで実行した後、以下に長いリストがあることがわかります。これはコンテナーの一意のIDであり、このIDからコンテナーを見つけることができます。

psビューコンテナ

最初にtraining / webappを実行します

docker run -d -p 5000:5000 training/webapp python app.py

docker psを使用して、実行中のコンテナを表示します

docker ps

[ root@yoyo ~]# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS                  
c9e8a325b145        training/webapp     "python app.py"16 hours ago        Up 16 hours         0.0.0.0:32768->5000/tcp
[ root@yoyo ~]#

上記のecho "hello world"は非常に単純な出力コマンドであり、実行後に閉じられるため、psは実行中のコンテナーを見つけることができません。-aパラメーターを追加して、実行されていないコンテナーを含むすべてのコンテナーを表示できます。

psパラメータ関連の構文を検索する

docker ps -a

[ root@yoyo ~]# docker ps -a
CONTAINER ID        IMAGE                      COMMAND                  CREATED             STATUS                      PORTS                     NAMES
1 e5c22451bf2        centos/python-36-centos7   "container-entrypoin…"10 minutes ago      Exited(0)10 minutes ago                             hopeful_poincare
1 d14dd77352f        centos/python-36-centos7   "container-entrypoin…"12 minutes ago      Exited(0)12 minutes ago                             nervous_visvesvaraya
fefdcbb9c662        centos/python-36-centos7   "container-entrypoin…"13 minutes ago      Exited(0)13 minutes ago                             quirky_cray
9 df329b5effd        centos/python-36-centos7   "container-entrypoin…"13 minutes ago      Exited(0)13 minutes ago                             nifty_roentgen
c9e8a325b145        training/webapp            "python app.py"16 hours ago        Up 16 hours                 0.0.0.0:32768->5000/tcp   kind_kirch
[ root@yoyo ~]#

これにより、上記のコンテナID 1e5c22451bf2が見つかりますが、それほど長くはありません

ログビューログ

コンテナIDで実行ログを確認できます

ドッキングログ[コンテナID]

[ root@yoyo ~]# docker logs 1e5c22451bf2 
hello world
[ root@yoyo ~]#

コンテナの名前で表示することもできます。これはコンテナの名前であり、イメージ名ではないことに注意してください。コンテナ名は、上記の最後のNAMES値hopeful_poincareなど、システムによって自動的に割り当てられます。

[ root@yoyo ~]# docker logs hopeful_poincare
hello world

**- f:dockerログにtail-fのようにコンテナ内の標準出力を出力させます。 ****

docker logs -f 1e5c22451bf2

コンテナを停止します

psを使用して、実行中のコンテナを表示できます

docker ps

[ root@yoyo ~]# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS                     NAMES
c9e8a325b145        training/webapp     "python app.py"17 hours ago        Up 17 hours         0.0.0.0:32768->5000/tcp   kind_kirch

コンテナを停止するには、停止コンテナのIDまたはコンテナの名前を使用できます

docker stop c9e8a325b145

または、停止するコンテナ名kind_kirchを指定します

docker stop kind_kirch

コンテナを起動します

コンテナの開始を開始する

[ root@yoyo ~]# docker start c9e8a325b145
c9e8a325b145
[ root@yoyo ~]# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS                     NAMES
c9e8a325b145        training/webapp     "python app.py"17 hours ago        Up 5 seconds        0.0.0.0:32769->5000/tcp   kind_kirch
[ root@yoyo ~]#

実行中のコンテナは、dockerrestartコマンドで再起動できます

[ root@yoyo ~]# docker restart c9e8a325b145
c9e8a325b145
[ root@yoyo ~]#

コンテナを削除

docker rmコマンドを使用して、不要なコンテナーを削除します

[ root@yoyo ~]# docker ps -a
CONTAINER ID        IMAGE                      COMMAND                  CREATED             STATUS                      PORTS                     NAMES
1 e5c22451bf2        centos/python-36-centos7   "container-entrypoin…"24 minutes ago      Exited(0)24 minutes ago                             hopeful_poincare
1 d14dd77352f        centos/python-36-centos7   "container-entrypoin…"27 minutes ago      Exited(0)27 minutes ago                             nervous_visvesvaraya
fefdcbb9c662        centos/python-36-centos7   "container-entrypoin…"27 minutes ago      Exited(0)27 minutes ago                             quirky_cray
9 df329b5effd        centos/python-36-centos7   "container-entrypoin…"27 minutes ago      Exited(0)27 minutes ago                             nifty_roentgen
c9e8a325b145        training/webapp            "python app.py"17 hours ago        Up 41 seconds               0.0.0.0:32770->5000/tcp   kind_kirch
[ root@yoyo ~]# docker rm 1e5c22451bf2
1 e5c22451bf2
[ root@yoyo ~]# docker rm 1d14dd77352f
1 d14dd77352f
[ root@yoyo ~]# docker rm kind_kirch
Error response from daemon: You cannot remove a running container c9e8a325b14534f0b27cfd34e3ceefd16f6a6c9f136c0305d4e60de61f2badc3. Stop the container before attempting removal or force remove
[ root@yoyo ~]#

ただし、rmがコンテナで実行されている場合、エラーが報告されます。rmの前に停止する必要があります。

[ root@yoyo ~]# docker stop kind_kirch
kind_kirch
[ root@yoyo ~]# docker rm  kind_kirch
kind_kirch
[ root@yoyo ~]# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
[ root@yoyo ~]#

Recommended Posts

Dockerラーニング2-centos7-python3.6環境をすばやく構築する
Centos6.5でドッカー環境を構築する
Ubuntu18.04LTSはCUDA環境をすばやく構築します
Ubuntu16.04ビルドLAMP開発環境
(1)クラスター環境を構築するためのCentos7のインストール
[PHP] CentOSでPHPオペレーティング環境を構築する
Ubuntuでpython開発環境を構築する
詳細なチュートリアルを構築するためのPython3開発環境
centos7.2でLAMP環境を構築する方法
Centos7でJava開発用の基本的な環境を構築する
CentOS6.7ビルドLNMP環境
Centos7.6ビルドLNMP環境
CentOS7ビルドLNMP環境