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 的项目。服务名为 mysqlwordpress 。使用到的卷为 mysql-datawordpress 。使用到的网络为 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

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
posted @ 2025-07-01 23:50  azsd  阅读(25)  评论(0)    收藏  举报