Dockerラーニングの構築とミラーの実行

4710 ワード

前言
前編に続き、dockerの環境を構築しました.以下、公式サイトのチュートリアルに従って、入門操作を行います.公式サイトのチュートリアルアドレス:Get Started,Part 2:Containers
Dockerfilew構成コンテナ
  • シンクホスト上にdemo-docker
  • のようなディレクトリを確立する
  • cd demo-docker
  • vi Dockerfile
  • ファイルには、
  • と入力されています.
    # Use an official Python runtime as a parent image
    #          Python        
    FROM python:2.7-slim
    
    # Set the working directory to /app
    #          /app
    WORKDIR /app
    
    # Copy the current directory contents into the container at /app
    #                  /app 
    ADD . /app
    
    # Install any needed packages specified in requirements.txt
    #    requirements.txt       
    RUN pip install --trusted-host pypi.python.org -r requirements.txt
    
    # Make port 80 available to the world outside this container
    #        80  
    EXPOSE 80
    
    # Define environment variable
    #       
    ENV NAME World
    
    # Run app.py when the container launches
    #       ,     
    CMD ["python", "app.py"]
    
  • vi requirements.txtは、以下の内容
  • を入力する.
    Flask
    Redis
    
  • vi app.pyは、次の
  • を入力します.
    from flask import Flask
    from redis import Redis, RedisError
    import os
    import socket
    
    # Connect to Redis
    redis = Redis(host="redis", db=0, socket_connect_timeout=2, socket_timeout=2)
    
    app = Flask(__name__)
    
    @app.route("/")
    def hello():
        try:
            visits = redis.incr("counter")
        except RedisError:
            visits = "cannot connect to Redis, counter disabled"
    
        html = "

    Hello {name}!

    " \ "Hostname: {hostname}
    " \ "Visits: {visits}" return html.format(name=os.getenv("NAME", "world"), hostname=socket.gethostname(), visits=visits) if __name__ == "__main__": app.run(host='0.0.0.0', port=80)
  • 最後にdemo-dockerに次のファイル
  • があります.
    app.py  Dockerfile  requirements.txt
    
  • dockerミラー
  • を作成する
    docker build -t demo-docker .
    
  • の実行が完了したら、システムに存在するdockerミラー
  • を確認します.
    docker image ls
    REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
    demo-docker         latest              321a0064dbe2        About an hour ago   148MB
    python              2.7-slim            b0259cf63993        7 days ago          138MB
    hello-world         latest              725dcfab7d63        8 days ago          1.84kB
    
  • ミラー
  • を実行
    #     4000        80  
    docker run -p 4000:80 demo-docker
    
  • バックグラウンドで
  • を実行
    docker run -d -p 4000:80 demo-docker
    
  • 起動後、コンテナのID情報を取得します.停止すると、このIDを使用します.また、コマンドで関連するID
  • を表示することもできます.
    docker container ls
    CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS                  NAMES
    83dd2473dc19        demo-docker         "python app.py"     7 seconds ago       Up 6 seconds        0.0.0.0:4000->80/tcp   pensive_yalow
    
  • バックグラウンドでの運転を停止する容器
  • docker container stop 83dd2473dc19
    
  • dockerのいくつかの一般的なコマンド
  • docker build -t friendlyname .  # Create image using this directory's Dockerfile
    docker run -p 4000:80 friendlyname  # Run "friendlyname" mapping port 4000 to 80
    docker run -d -p 4000:80 friendlyname         # Same thing, but in detached mode
    docker container ls                                # List all running containers
    docker container ls -a             # List all containers, even those not running
    docker container stop            # Gracefully stop the specified container
    docker container kill          # Force shutdown of the specified container
    docker container rm         # Remove specified container from this machine
    docker container rm $(docker container ls -a -q)         # Remove all containers
    docker image ls -a                             # List all images on this machine
    docker image rm             # Remove specified image from this machine
    docker image rm $(docker image ls -a -q)   # Remove all images from this machine
    docker login             # Log in this CLI session using your Docker credentials
    docker tag  username/repository:tag  # Tag  for upload to registry
    docker push username/repository:tag            # Upload tagged image to registry
    docker run username/repository:tag                   # Run image from a registry
    

    よくある質問
    #       ,           ,   Docker          ,   
    docker image ls
             。
      ,     
    docker ps -a
          ,         
    docker rm 
       
    docker rmi