下载了网上的一个mysql版本
git clone https://github.com/batlley/alpine-mysql.git
Dockerfile如下,没有创建/data/mysql 匿名卷
FROM alpine:3.5
MAINTAINER batlley
WORKDIR /data
COPY startup.sh /startup.sh
RUN apk add --no-cache bash mysql mysql-client \
&& rm -rf /var/cache/apk/*
COPY my.cnf /etc/mysql/my.cnf
EXPOSE 3306
CMD ["/startup.sh"]
我写了一个docker-compose.yml
version: '2'
services:
mysql:
image: alpine/mysql:latest
restart: always
hostname: local
container_name: mysql
volumes:
- /etc/localtime:/etc/localtime
- /var/run/docker.sock:/var/run/docker.sock
- /etc/mysql:/etc/mysql
#- /data/mysql:/data/mysql
ports:
- 3306:3306
开始没有注释掉- /data/mysql:/data/mysql,docker-compose up -d启动后,启动失败,后来用docker-compose up启动,发现报错
Fatal error: Can't open and lock privilege tables: Table 'mysql.user' doesn't exist
后来我把 - /data/mysql:/data/mysql这行注释掉就不报错了。我用docker rm 删除了容器,并且将/data/mysql目录下的东西用rm -rf清空,重新docker-compose up启动,发现宿主机器的/data/mysql目录下居然又出现很多mysql-bin等文件,这很奇怪啊,Docker-compose没的volumes映射被注释掉了,Dockerfile文件里也没有匿名卷,为何/data/mysql目录下居然有很多mysql-bin等文件?
难道startup.sh文件有影响?不应该啊,这个是在容器内跑的脚本,不影响宿主啊,而且里面我看也没有创建影射关系的命令