• Docker Compose常用命令


    常用命令

    1.1 restart, start, stop-- 启动和停止服务

    命令必须在 docker-compose.yml文件所在的目录下执行。

    1. # 前台启动, 启动项目中的所有服务。
    2. $. docker-compose up
    3. # 后台启动, 启动所有服务并在后台运行。
    4. $. docker-compose up -d
    5. # 停止所有服务。
    6. $. docker-compose stop
    7. restart
    8. docker-compose restart重启服务容器。
    9. docker-compose restart # 重启工程中所有服务的容器
    10. docker-compose restart nginx # 重启工程中指定服务的容器
    11. start
    12. docker-compose start启动服务容器。
    13. docker-compose start # 启动工程中所有服务的容器
    14. docker-compose start nginx # 启动工程中指定服务的容器
    15. stop
    16. docker-compose stop停止服务容器。
    17. docker-compose stop # 停止工程中所有服务的容器
    18. docker-compose stop nginx # 停止工程中指定服务的容器

    1.2 build -- 构建和重构服务

    1. # 构建服务的镜像
    2. docker-compose build
    3. # 如果服务镜像不存在,则构建镜像并启动服务。
    4. docker-compose up –build
    5. # 重构服务。
    6. docker-compose up --force-recreate

    1.3 ps, logs -- 查看服务信息

    1. # 查看项目中所有服务的信息。
    2. docker-compose ps
    3. # 查看容器的日志。
    4. docker-compose logs
    5. # 在服务镜像的容器中执行命令。
    6. docker-compose exec service_name command

    1.4 down -- 删除所有容器

    1. # 删除服务容器(容器)
    2. docker-compose down

    1.5 logs命令

    1. # docker-compose logs 查看服务容器的输出日志。
    2. # 默认情况下,docker-compose将对不同的服务输出使用不同的颜色来区分。
    3. # 可以通过--no-color来关闭颜色。
    4. # 输出日志,不同的服务输出使用不同的颜色来区分
    5. docker-compose logs
    6. # 跟踪日志输出
    7. docker-compose logs -f
    8. # 关闭颜色
    9. docker-compose logs --no-color
    10. # 查看日志
    11. docker-compose logs web # 参考 1.9 docker-compose.yml 文件内容

    1.6 run命令 -- 在指定容器上执行命令

    1. run
    2. docker-compose run 在指定服务容器上执行一个命令。
    3. docker-compose run nginx echo "helloworld" # 在工程中指定服务的容器上执行 echo "helloworld"

    1.7 exec命令 -- 进入指定容器

    1. exec
    2. docker-compose exec进入服务容器。
    3. docker-compose exec nginx bash # 进入工程中指定服务的容器
    4. docker-compose exec --index=1 nginx bash # 当一个服务拥有多个容器时,可通过 --index 参数进入到该服务下的任何容器
    5. sudo docker-compose exec jobmanager ./bin/sql-client.sh -f sql/flink_kafka1.sql
    6. sudo docker-compose exec jobmanager ./bin/flink list
    7. sudo docker logs -f -t --since="2023-05-08" --tail=200 flink_taskmanager_1
    8. sudo docker-compose logs -f taskmanager
    9. sudo docker-compose exec jobmanager bash
    10. sudo docker-compose exec jobmanager ./bin/flink cancel 8d8cc94d73f7bd0c4cdc557264553a04

    1.8 pause, unpause命令 -- 暂停, 恢复服务容器

    1. pause
    2. docker-compose pause暂停服务容器
    3. docker-compose pause # 暂停工程中所有服务的容器
    4. docker-compose pause nginx # 暂停工程中指定服务的容器
    5. unpause
    6. docker-compose unpause恢复服务容器。
    7. docker-compose unpause # 恢复工程中所有服务的容器
    8. docker-compose unpause nginx # 恢复工程中指定服务的容器

    1.9 scale 命令 -- 扩容缩容

    1. docker-compose scale taskmanager=5
    2. docker-compose up --scale web=5 -d
    3. # -------------------------------------------- #
    4. # docker-compose.yml内容:
    5. version: '3'
    6. services:
    7. web:
    8. build: .
    9. networks:
    10. - app-net
    11. redis:
    12. image: "redis:alpine"
    13. networks:
    14. - app-net
    15. networks:
    16. app-net:
    17. driver: bridge

    1.20 ps命令 -- 查看容器列表

    docker-compose ps

    1.21 stop 指定容器

    1. docker-compose stop jobmanager
    2. docker-compose stop taskmanager

    1.22 删除容器

    1. docker-compose rm -f jobmanager
    2. docker-compose rm -f taskmanager

    2. 示例说明

    2.1 示例一

    假设有一个项目,包含了一个nginx服务和一个web服务,运行在不同的容器内。nginx作为反向代理服务器将流量转发到web服务器上。
    在项目根目录下,创建一个 docker-compose.yml文件,并填写如下内容:
    1. version: '3'
    2. services:
    3. nginx:
    4. image: nginx
    5. ports:
    6. - 80:80
    7. web:
    8. build: ./web
    9. ports:
    10. - 5000:5000
    其中,nginx服务直接使用官方的nginx镜像,将其映射到宿主机的80端口,web服务则是使用当前目录下的web子目录中的Dockerfile构建出镜像,将其映射到宿主机的5000端口上。
    通过执行docker-compose up命令来启动服务:
    1. $. docker-compose up -d
    2. Creating network "web_default" with the default driver
    3. Creating web_1 ...
    4. Creating nginx_1 ...

    此时,nginx服务和web服务已经在后台运行了。

    如果需要停止服务,可以执行docker-compose stop命令:

    1. $. docker-compose stop
    2. Stopping nginx_1 ... done
    3. Stopping web_1 ... done

    如果需要重构服务,需要在docker-compose.yml文件所在的目录下执行docker-compose up –force-recreate命令:

    1. $ docker-compose up --force-recreate
    2. Recreating web_1 ...
    3. Recreating nginx_1 ...

    2.2 示例二

    假设需要在一台服务器上运行两份相同的应用,但它们需要监听不同的端口,并需要以不同的环境变量进行配置。可以通过 Docker Compose来实现。
    首先,创建一个项目目录,在该目录下创建 docker-compose.yml文件,并填写如下内容:
    1. version: '3'
    2. services:
    3. app1:
    4. image: myapp
    5. environment:
    6. PORT: 3000
    7. MESSAGE: "Hello from app1"
    8. ports:
    9. - 8001:3000
    10. app2:
    11. image: myapp
    12. environment:
    13. PORT: 4000
    14. MESSAGE: "Hello from app2"
    15. ports:
    16. - 8002:4000

    其中,定义了两个服务app1和app2,它们都是使用myapp镜像构建,

    • app1服务监听3000端口,在宿主机上映射到8001端口,配置了环境变量PORT和MESSAGE;
    • app2服务监听4000端口,在宿主机上映射到8002端口,配置了不同的PORT和MESSAGE。

    在项目所在目录下执行docker-compose up -d命令来启动服务,然后使用浏览器访问localhost:8001和localhost:8002来访问不同的应用。

    如果需要重构服务,需要在docker-compose.yml文件所在的目录下执行docker-compose up –force-recreate命令。

  • 相关阅读:
    财务管理与合同管理的分析
    Curve 块存储应用实践 -- iSCSI
    java学习第188天,javaWeb学习第47天,复习第23天;p257-262(08/21)-4h
    信息系统项目管理师必背核心考点(二十六)三点估算(PERT)
    Go的并发
    LabVIEW利用纳米结构干电极控制神经肌肉活动
    可编程 USB 转串口适配器开发板 SHT3x-DIS 温湿度传感器芯片
    在CentOS 7中手工打造和运行xml文件配置的Servlet,然后使用curl、浏览器、telnet等三种工具各自测试
    npm和yarn使用(官网、安装、命令行、上传自己的包、包版本号详解、更新卸载包、查看所有版本、同等依赖peer、可选依赖optional)
    keil软件中按F12 无法跳转到函数、变量定义处
  • 原文地址:https://blog.csdn.net/justlpf/article/details/132734556