当前位置: 首页 > 知识库问答 >
问题:

docker-compose.yml 配置出错?

督瑞
2023-05-27

我的docker-compose.yml文件中有关mysql服务的配置如下,我想将/app/mysql/conf/mycnf/my.cnf挂载与/etc/my.cnf想对应,但是这里在volumes:下配置相当于目录了,不是文件,该怎么弄才能让文件相对应?

#mysql服务
  mysql:
    image: mysql:8.0.19
    environment:
      MYSQL_ROOT_PASSWORD: 96309630
      MYSQL_ALLOW_EMPTY_PASSWORD: 'no'
      MYSQL_DATABASE: 'lxl_blog'
      MYSQL_USER: 'root'
      MYSQL_PASSWORD: 96309630
    ports:
       - "3306:3306"
    volumes:
       - /app/mysql/db:/var/lib/mysql
       - /app/mysql/conf/mycnf/my.cnf:/etc/my.cnf
       - /app/mysql/init:/docker-entrypoint-initdb.d
    networks:
      - blog_network
    command: --default-authentication-plugin=mysql_native_password #解决外部无法访问

共有1个答案

樊烨烨
2023-05-27

这篇文章你可以看看:https://juejin.cn/post/7221131955201572919#heading-1
docker-compose讲解与安装 :https://juejin.cn/post/7220730324752859195

version: '3'
services:

  mysql:
    image: mysql:5.7.35 #镜像名称以及版本
    restart: always #重启docker后该容器也重启
    container_name: mysql #容器名称
    environment:
      MYSQL_ROOT_PASSWORD: 123456 #指定用户密码
      TZ: Asia/Shanghai
    ports:
      - 3306:3306 #本地端口号与容器内部端口号
    volumes: #指定挂载目录
      - /usr/etc/mysql/datadir:/var/lib/mysql
      - /usr/etc/mysql/config/my.cnf:/etc/mysql/my.cnf
    command: 
      --max_connections=1000
      --character-set-server=utf8mb4
      --collation-server=utf8mb4_general_ci
      --default-authentication-plugin=mysql_native_password
  redis:
    image: redis:4.0.7  #镜像名称以及版本
    restart: always  #重启docker后该容器也重启
    container_name: redis #容器名称
    ports:
      - 6379:6379 #本地端口号与容器内部端口号
    volumes: #指定挂载目录
      - /usr/etc/redis/redis.conf:/usr/local/etc/redis/redis.conf  #redis.conf文件和data目录分别映射了主机的redis.conf文件和主机的data目录
      - /usr/etc/redis/data:/data
    command:
      /bin/bash -c "redis-server /usr/local/etc/redis/redis.conf " #使用command可以覆盖容器启动后默认执行的命令。这里启动执行指定的redis.conf文件
  nginx:
    image: nginx:1.21.3 #镜像名称以及版本
    restart: always #重启docker后该容器也重启
    container_name: nginx #容器名称
    ports:
      - 80:80 #本地端口号与容器内部端口号
      - 443:443 #本地端口号与容器内部端口号
    volumes: #指定挂载目录
      - ./usr/etc/nginx/html:/usr/share/nginx/html
      - ./usr/etc/nginx/log:/var/log/nginx
      - ./usr/etc/nginx/conf:/etc/nginx/
 类似资料:
  • docker-compose.yml 启动一个 order 和 一个 peer 节点。 orderer: image: hyperledger/fabric-orderer environment: - ORDERER_GENERAL_LEDGERTYPE=ram - ORDERER_GENERAL_BATCHTIMEOUT=10s - ORDERER_GENERAL_BAT

  • docker-compose.yml 启动一个 5 个节点的服务,包括 zookeeper、fabric-order 和 3 个 kafka 节点。

  • 在Ubuntu中通过docker-compose部署MySQL时无法部署;docker-compose.yml文件如下: 我的步骤如下: 1.注释挂载,直接启动mysql 成功 2.复制容器中的/var/lib/mysql到宿主机我希望挂载的地方 3.复制/etc/mysql ,然后编写my.cnf放到宿主机/data/docker/mysql/etc/mysql/conf.d下 4.删除镜像 5

  • 想改进这个问题吗 通过编辑此帖子,添加详细信息并澄清问题。 我不确定是否保留了docker撰写。yml文件位于项目根目录或资源文件夹(我使用Maven)中的应用程序。属性文件也被保留。那么,保持docker编写的最合适的方法是什么。Spring Boot项目中的yml文件?

  • 我有一个docker-compose.yml,它构建了大约8个容器,主要由mysql、postgres、php-nginx和其他一些定制构建的包组成。生产版本在UBUNTU主机上运行,我的开发包在带有英特尔芯片的Mac OS Catalina上运行。整个事情也在Github上的私人存储库中维护。 合作者有一台M1 Mac,我可能很快就会升级到M1 Mac,或者是MacBook Pro,或者是今年晚

  • 这节课让我们来容器化Flask应用吧...... 首先你需要确保你的环境中已经安装了Docker和Docker Compose: $ docker -v Docker version 17.05.0-ce, build 89658be $ docker-compose -v docker-compose version 1.14.0, build unknown 在项目的根目录下面创建一个Doc