docker compose 的使用
docker compose
定义
方便doucker批量的管理容器,可以设置多个容器同时创建并运行、指定启动和停止已经创建好的容器、对容器的服务进行扩容、对全部容器进行整体的下线(可以删除所使用到的资源)。
docker compose 的全部操作默认读取当前目录下的 compose.yaml ,可以通过 -f xx.yaml 来指定具体的配置文件。2024-08-14 22:51:57 星期三
docker官方对 compose.yaml 文件定义的文档
一些命令
上线
docker compose up -d
# 批量创建并运行容器
# -d 后台运行
# -f ab.yaml 以指定文件运行,默认为当前目录的 compose.yaml
下线
docker compose down
# 默认将删除容器和网络,保留卷和镜像。具体可通过 <docker compose down --help> 查看
# -f ab.yaml 以指定文件运行,默认为当前目录的 compose.yaml
# -v 删除容器的所有卷
# rmi local|all 删除镜像
启动
启动默认容器
docker compose start启动指定的一个或多个容器
docker compose start nginx
docker compose start nginx redis mysql
停止
停止默认compose文件的容器
docker compose stop停止指定的一个或多个容器
docker compose stop nginx
docker compose stop nginx redis mysql
查看日志
查看全部日志
docker compose logs查看指定服务的日志
docker compose logs -f [服务名]
扩容
指定a2应用启动三份(如果不够就会再启动n个)
如果使用扩容,就不能在yaml文件中指定容器的名字
docker compose scale a2=3
yaml 文件示例
- 创建一个名为
myblog的项目。服务名为mysql和wordpress。使用到的卷为mysql-data和wordpress。使用到的网络为blog。
name: myblog
services:
mysql:
container_name: mysql
image: mysql:latest
ports:
- "3306:3306"
environment:
- MYSQL_ROOT_PASSWORD=123456
- MYSQL_DATABASE=wordpress
volumes:
- mysql-data:/var/lib/mysql
- /data/myconf:/etc/mysql/conf.d
restart: always
networks:
- blog
wordpress:
container_name: wordpress
image: wordpress:latest
ports:
- "8080:80"
environment:
- WORDPRESS_DB_HOST=mysql
- WORDPRESS_DB_USER=root
- WORDPRESS_DB_PASSWORD=123456
- WORDPRESS_DA_NAME=wordpress
volumes:
- wordpress:/var/www/html
restart: always
networks:
- blog
depends_on:
- mysql
volumes:
mysql-data:
wordpress:
networks:
blog:
本地局域网部署gitlab
- 参考官方文档:https://docs.gitlab.com/install/docker/installation/
- gitlab的官方文档写的很清晰,还包含如何配置config以及数据备份方案
name: local-dev
services:
gitlab:
image: gitlab/gitlab-ce:18.3.1-ce.0
container_name: gitlab
# 必须要配置此项
hostname: 192.168.29.2
# restart: always
environment:
GITLAB_OMNIBUS_CONFIG: |
# 用IP+端口访问时的外部地址,会影响到git的地址,配置错了连不上git
external_url 'http://192.168.29.2:8929'
# 按需开启ssh,这是配置的ssh端口号
gitlab_rails['gitlab_shell_ssh_port'] = 8922
# 设置时区
gitlab_rails['time_zone'] = 'Asia/Shanghai'
deploy:
resources:
limits:
# cpus: '0.50'
# 限制内存最大占用量
memory: 6G
ports:
- '8929:8929' # 使用ip+端口访问时,容器内必须固定映射8929端口
- '8922:22'
# - '8443:443'
volumes:
- /data/gitlab/config:/etc/gitlab
- /data/gitlab/logs:/var/log/gitlab
- /data/gitlab/data:/var/opt/gitlab
shm_size: '256m'
安装完成之后,还需要配置root管理密码
参考文章:https://www.cnblogs.com/velloLei/p/19010079
# 一、进入gitlab容器
docker exec -it gitlab /bin/bash
# 二、进入gitlab rails控制台
gitlab-rails console -e production
# 三、重置root密码
user = User.find_by(username:'root')
user.password = 'new_password'
user.password_confirmation = 'new_password'
# 四、保存更改的密码:
user.save!
# 五、退出rails模式,使用新密码登录验证
exit
浙公网安备 33010602011771号