- 编写Dockerfile
FROM mysql:8.0.39
ENV TZ=Asia/Shanghai
RUN ln -sf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
- 编写docker-compose.yml,与Dockerfile在同目录中
services:
db:
build:
context: ./
image: mysql:8.0.39
container_name: mysql
restart: always
environment:
- MYSQL_ROOT_PASSWORD=root
- MYSQL_ROOT_HOST=%
- TZ=Asia/Shanghai
ports:
- 3306:3306
command:
- --lower_case_table_names=1
- --character_set_server=utf8mb4
- --collation_server=utf8mb4_general_ci
- --explicit_defaults_for_timestamp=true
- --max_allowed_packet=128M
- --default_authentication_plugin=caching_sha2_password
volumes:
- /root/workspace/docker/my.cnf:/etc/my.cnf
- /root/workspace/docker/volumn:/var/lib/mysql
- /root/workspace/docker/volumn_logs:/var/log/mysql
- 运行
docker-compose up -d
- 如果网络问题镜像拉取不下来,需要配置docker源,或者在Dockerfile的拉取镜像代码配置一次性源
- 输入指令后运行
docker ps
,查看容器是否正常运行,如果一直restart再通过docker logs container_id
查看报错及解决方案
- 如果报错
'/var/lib/mysql/mysql.sock' -> '/var/run/mysqld/mysqld.sock'
- 可以尝试
docker system prune -a
,这样会清楚掉服务器docker中未使用的镜像缓存,可能可以解决这个问题(我是这样解决的)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?