Docker 的使用全解

注:一下代码必要时加sudo
    容器 = 镜像 + 可读层。
    docker run 命令先是利用镜像创建了一个容器,然后运行这个容器。
    Docker start命令为容器文件系统创建了一个进程隔离空间。注意,每一个容器只能够有一个进程隔离空间。 
1、测试Docker是否安装成功
    docker run hello-world
2、查看版本信息
    docker --version
3、使用Dockerfile定义容器:
    1)创建空目录test
    2)将名为Dockerfile的文件放入,配置如下:
        # 将官方 Python 运行时用作父镜像
        FROM python:3.6-slim

        # 将工作目录设置为 /app
        WORKDIR /app

        # 将当前目录内容复制到位于 /app 中的容器中
        ADD . /app

        # 安装 requirements.txt 中指定的任何所需软件包
        RUN pip install -r requirements.txt

        # 使端口 80 可供此容器外的环境使用
        EXPOSE 80

        # 定义环境变量
        ENV NAME World

        # 在容器启动时运行 app.py
        CMD ["python", "app.py"]
    3)将requirements.txt放入,配置如下:
        Flask
        Redis
    4)将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)
    5)查看文件
        cd test
        ls
    6)准备工作完成
    7)构建Docker镜像
        docker build -t friendlyhello .
    8)查看镜像的位置
        docker images
    9)运行应用,p参数将本机的一个端口与容器的端口绑定
        docker run -p 4000:80 friendlyhello
    10)测试:
        a:在浏览器上测试
            http://localhost:4000/
        b:用命令行测试
            curl http://localhost:4000
    11)终端上按 CTRL+C 退出。
    12)在分离模式下运行应用
        docker run -d -p 4000:80 friendlyhello
        结果:
            容器在后台运行;
            获得应用的长容器 ID
    13)查看正在运行的容器
        docker ps
    14)结束容器的运行
        docker stop CONTAINER ID
    15)完成了,嘤嘤嘤~
        
4、镜像操作
    1)列出镜像列表
        docker images
    2)使用一个镜像运行容器
        例如:docker run -t -i ubuntu:15.10 /bin/bash 
    3)获取新镜像
        docker pull ubuntu:18.10
    4)搜索镜像
        docker search httpd
    5)自己创建一个镜像
        a:从已经创建的容器中更新镜像,并且提交这个镜像
        b:使用 Dockerfile 指令来创建一个新的镜像
    6)更新镜像
        由镜像创建一个容器后才能更新
            docker run -t -i ubuntu:15.10 /bin/bash
            apt-get update 
            exit
            docker commit 来提交容器副本。
                docker commit -m="has update" -a="runoob" e218edb10161 runoob/ubuntu:v2\
                sha256:70bf1840fd7c0d2d8ef0a42a817eb29f854c1af8f7c59fc03ac7bdee9545aff8
                    -m:提交的描述信息
                    -a:指定镜像作者
                    e218edb10161:容器ID
                    runoob/ubuntu:v2:指定要创建的目标镜像名
    7)设置镜像标签
        docker tag 860c279d2fec runoob/centos:dev
    8)构建镜像:可参考步骤3
        命令 docker build , 从零开始来创建一个新的镜像。为此,我们需要创建一个 Dockerfile 文件,其中包含一组指令来告诉 Docker 如何构建我们的镜像。
            docker build -t 名字

你可能感兴趣的:(Docker,Ubuntu)