赞
踩
命令必须在 docker-compose.yml文件所在的目录下执行。
- # 前台启动, 启动项目中的所有服务。
- $. docker-compose up
-
- # 后台启动, 启动所有服务并在后台运行。
- $. docker-compose up -d
-
- # 停止所有服务。
- $. docker-compose stop
-
- restart
- docker-compose restart重启服务容器。
- docker-compose restart # 重启工程中所有服务的容器
- docker-compose restart nginx # 重启工程中指定服务的容器
-
- start
- docker-compose start启动服务容器。
- docker-compose start # 启动工程中所有服务的容器
- docker-compose start nginx # 启动工程中指定服务的容器
-
- stop
- docker-compose stop停止服务容器。
- docker-compose stop # 停止工程中所有服务的容器
- docker-compose stop nginx # 停止工程中指定服务的容器
- # 构建服务的镜像
- docker-compose build
-
- # 如果服务镜像不存在,则构建镜像并启动服务。
- docker-compose up –build
-
- # 重构服务。
- docker-compose up --force-recreate
- # 查看项目中所有服务的信息。
- docker-compose ps
-
- # 查看容器的日志。
- docker-compose logs
-
- # 在服务镜像的容器中执行命令。
- docker-compose exec service_name command
- # 删除服务容器(容器)
- docker-compose down
- # docker-compose logs 查看服务容器的输出日志。
- # 默认情况下,docker-compose将对不同的服务输出使用不同的颜色来区分。
- # 可以通过--no-color来关闭颜色。
- # 输出日志,不同的服务输出使用不同的颜色来区分
- docker-compose logs
- # 跟踪日志输出
- docker-compose logs -f
- # 关闭颜色
- docker-compose logs --no-color
-
- # 查看日志
- docker-compose logs web # 参考 1.9 docker-compose.yml 文件内容
- run
- docker-compose run 在指定服务容器上执行一个命令。
- docker-compose run nginx echo "helloworld" # 在工程中指定服务的容器上执行 echo "helloworld"
- exec
- docker-compose exec进入服务容器。
- docker-compose exec nginx bash # 进入工程中指定服务的容器
- docker-compose exec --index=1 nginx bash # 当一个服务拥有多个容器时,可通过 --index 参数进入到该服务下的任何容器
-
- sudo docker-compose exec jobmanager ./bin/sql-client.sh -f sql/flink_kafka1.sql
- sudo docker-compose exec jobmanager ./bin/flink list
- sudo docker logs -f -t --since="2023-05-08" --tail=200 flink_taskmanager_1
- sudo docker-compose logs -f taskmanager
-
- sudo docker-compose exec jobmanager bash
- sudo docker-compose exec jobmanager ./bin/flink cancel 8d8cc94d73f7bd0c4cdc557264553a04
- pause
- docker-compose pause暂停服务容器
- docker-compose pause # 暂停工程中所有服务的容器
- docker-compose pause nginx # 暂停工程中指定服务的容器
-
- unpause
- docker-compose unpause恢复服务容器。
- docker-compose unpause # 恢复工程中所有服务的容器
- docker-compose unpause nginx # 恢复工程中指定服务的容器
- docker-compose scale taskmanager=5
- docker-compose up --scale web=5 -d
-
- # -------------------------------------------- #
- # docker-compose.yml内容:
- version: '3'
- services:
- web:
- build: .
- networks:
- - app-net
-
- redis:
- image: "redis:alpine"
- networks:
- - app-net
-
- networks:
- app-net:
- driver: bridge
docker-compose ps
- docker-compose stop jobmanager
- docker-compose stop taskmanager
1.22 删除容器
- docker-compose rm -f jobmanager
- docker-compose rm -f taskmanager
假设有一个项目,包含了一个nginx服务和一个web服务,运行在不同的容器内。nginx作为反向代理服务器将流量转发到web服务器上。
在项目根目录下,创建一个 docker-compose.yml文件,并填写如下内容:
- version: '3'
- services:
- nginx:
- image: nginx
- ports:
- - 80:80
- web:
- build: ./web
- ports:
- - 5000:5000
其中,nginx服务直接使用官方的nginx镜像,将其映射到宿主机的80端口,web服务则是使用当前目录下的web子目录中的Dockerfile构建出镜像,将其映射到宿主机的5000端口上。
通过执行docker-compose up命令来启动服务:
- $. docker-compose up -d
- Creating network "web_default" with the default driver
- Creating web_1 ...
- Creating nginx_1 ...
此时,nginx服务和web服务已经在后台运行了。
如果需要停止服务,可以执行docker-compose stop命令:
- $. docker-compose stop
- Stopping nginx_1 ... done
- Stopping web_1 ... done
如果需要重构服务,需要在docker-compose.yml文件所在的目录下执行docker-compose up –force-recreate命令:
- $ docker-compose up --force-recreate
- Recreating web_1 ...
- Recreating nginx_1 ...
假设需要在一台服务器上运行两份相同的应用,但它们需要监听不同的端口,并需要以不同的环境变量进行配置。可以通过 Docker Compose来实现。
首先,创建一个项目目录,在该目录下创建 docker-compose.yml文件,并填写如下内容:
- version: '3'
- services:
- app1:
- image: myapp
- environment:
- PORT: 3000
- MESSAGE: "Hello from app1"
- ports:
- - 8001:3000
- app2:
- image: myapp
- environment:
- PORT: 4000
- MESSAGE: "Hello from app2"
- ports:
- - 8002:4000
其中,定义了两个服务app1和app2,它们都是使用myapp镜像构建,
在项目所在目录下执行docker-compose up -d命令来启动服务,然后使用浏览器访问localhost:8001和localhost:8002来访问不同的应用。
如果需要重构服务,需要在docker-compose.yml文件所在的目录下执行docker-compose up –force-recreate命令。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。