美文网首页
docker-compose简单使用

docker-compose简单使用

作者: 是立品啊 | 来源:发表于2020-09-08 15:36 被阅读0次

    docker-compose简介

    Docker Compose是一个基于Docker Engine进行安装的Python工具。该工具使得用户可以在一个声明式的配置文件中定义一个多容器的应用,并通过一个简单的命令完成部署。

    dockerFile分析

    FROM python:3.4-alpine
    ADD . /code
    WORKDIR /code
    RUN pip install -r requirements.txt -i https://pypi.douban.com/simple
    CMD ["python", "app.py"]
    
    image.png

    docker-compose.yml分析

    version: "3.5"
    services:
      web-fe:
        build: .
        command: python app.py
        ports:
          - target: 5000
            published: 5000
        networks:
          - counter-net
        volumes:
          - type: volume
            source: counter-vol
            target: /code
      redis:
        image: "redis:alpine"
        networks:
          counter-net:
    
    networks:
      counter-net:
    
    volumes:
      counter-vol:
    
    • 4个一级key:version、services、networks、volumes。

    命令

    启动

    • docker-compose up & #默认情况下该命令会读取名为docker-compose.yml或docker-compose.yaml的文件
    • docker-compose up -d #令应用在后台启动
    • docker-compose up -f mydocker-compose.yml #自定义构建文件

    Docker Compose会在部署服务之前创建网络和卷

    查看

    • docker-compose ps
    • docker network ls # 查看网络
    • docker volume ls # 查看卷
    • docker compose top #列出各个服务(容器)内运行的进程,PID是主机的进行ID不是容器的

    停止并关闭

    • docker-compose down
      • 删除容器
      • 删除网络
      • 不删除镜像
      • 不删除volume

    停止应用

    • docker-compose stop
      • 停止应用,但并不会删除资源

      • 对于已停止的Compose应用,可以使用docker-compose rm命令来删除。这会删除应用相关的容器和网络,但是不会删除卷和镜像

    重启

    • docker-compose restart

      • 如果用户在停止该应用后对其进行了变更,那么变更的内容不会反映在重启后的应用中,这时需要重新部署应用使变更生效。

    验证对Docker 主机对卷中文件的修改,会立刻反应到应用中

    1. 查看卷volume位置

    docker volume inspect [volume name]

     $ docker volume inspect counter-app_counter-vol
     --------------------------------------
    [
        {
            "CreatedAt": "2020-09-07T12:33:59Z",
            "Driver": "local",
            "Labels": {
                "com.docker.compose.project": "counter-app",
                "com.docker.compose.version": "1.25.5",
                "com.docker.compose.volume": "counter-vol"
            },
            "Mountpoint": "/var/lib/docker/volumes/counter-app_counter-vol/_data",
            "Name": "counter-app_counter-vol",
            "Options": null,
            "Scope": "local"
        }
    ]
    
     docker volume inspect counter-app_counter-vol | grep Mount
    ---------------------------------
    
    "Mountpoint": "/var/lib/docker/volumes/counter-app_counter-vol/_data"
    
    • mac上用docker会在mac上启动一个虚拟机运行docker,因此volume创建的directory并不在你的machine上,而是在虚拟机中

    2. 复制修改后的文件到卷中

    cp app.py /var/lib/docker/volumes/counter-app_counter-vol/_data/app.py
    

    3. 刷新应用

    • 在生产环境中不会这样做,但是在开发环境中这确实很节省时间

    相关文章

      网友评论

          本文标题:docker-compose简单使用

          本文链接:https://www.haomeiwen.com/subject/dsxjektx.html