在 Ubuntu 系統(tǒng)上使用 docker-compose 部署 mysql 時,遇到了無法部署的問題。以下為相關(guān)配置:
version: '3' services: mysql: restart: always image: mysql:8.2 network_mode: bridge container_name: mysql environment: mysql_root_password: root123 command: --character-set-server=utf8mb4 --collation-server=utf8mb4_general_ci --explicit_defaults_for_timestamp=true --lower_case_table_names=1 --max_allowed_packet=128m volumes: - /etc/localtime:/etc/localtime:ro - /data/docker/mysql/mysql:/var/lib/mysql - /data/docker/mysql/etc:/etc/mysql:ro ports: - 3306:3306
登錄后復(fù)制
采取了以下步驟:
- 注釋掉掛載,直接啟動 mysql,成功啟動。
- 將容器中的 /var/lib/mysql 復(fù)制到宿主機指定掛載目錄。
- 復(fù)制 /etc/mysql,編寫 my.cnf,并將其放置在宿主機 /data/docker/mysql/etc/mysql/conf.d 下。
- 刪除鏡像。
- 打開掛載注釋。
此時出現(xiàn)錯誤:
mysqld: can't read dir of '/etc/mysql/conf.d/' (os errno 2 - no such file or directory)
登錄后復(fù)制
錯誤分析
掛載的目錄 /data/docker/mysql/etc 缺少 conf.d 目錄。掛載配置為:
- /data/docker/mysql/etc:/etc/mysql:ro
登錄后復(fù)制
導(dǎo)致啟動時找不到 /etc/mysql/conf.d 目錄。