1⃣ 用docker起一个mysql的服务,运行以下指令:
docker run --name root -p 3306:3306 -v /tmp/lancmysql:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql
然后查看docker 的容器:
docker ps
没有mysql的docker 起来。
然后查看没有运行的docker :
docker ps -a
看到mysql的docker。
查看mysql的container的日志:
docker logs <container的名字>
这句话查看的日志只是docker里边的日志。就是在远程主机上的日志,并不能看到自己本机的日志。
报的错:
chown: changing ownership of '/var/lib/mysql/': Operation not permitted
。
此时/var/lib/mysql/
这个目录是远程主机上的目录。往回看我们运行的第一条指令,我们往远程主机上映射的目录是:/tmp/lancmysql:/var/lib/mysql
。所以往回倒,相对于在自己本机 /tmp/lancmysq
,这个目录没有操作权限。
因为我的这个/tmp/lancmysql
的lancmysql
目录是用sudo
,创建的。所以没有操作权限。把/tmp
目录下的lancmysql
删除,然后删除已经存在的mysql的container。之后再执行第一句话的时候,执行的时候让他自己创建lancmysql
目录。
再运行docker ps
,mysql的container就起来了。
2⃣ 用docker起一个mysql的服务
用docker 去运行一个程序,比如mysql,只是用mysql的服务,不用在自己本机上下载一个mysql的程序,在自己本机上下载的只是客户端,我们用docker ,只是用mysql的服务,所以在起mysql的服务的时候,用户名和密码是自己设定的。
3⃣️ 我当前mysql的本地目录是/tmp,报下边这个错,是不让在/tmp目录下操作:
更改到别的目录就可以了。
一直需要使用的文件不能放在tmp文件夹下
放在/tmp文件夹下,系统会自己删除,所以在加blockchain-explorer的sql的文件的时候,起项目的时候,就需要添加一次,换一个文件夹就好了。
4⃣️ 添加docker file sharing,报的错如下:
ERROR: for user-dashboard Cannot start service user-dashboard: Mounts denied:
The path /opt/cello/baas
is not shared from OS X and is not known to Docker.
You can configure shared paths from Docker -> Preferences... -> File Sharing.
See https://docs.docker.com/docker-for-mac/osxfs/#namespaces for more info.
意思是在docker 的file Sharing的目录下没有/opt/cello/baas
这个目录,只需要把这个路径添加上就可以:
打开docker 的UI界面:
进入perferences,然后进入file Sharing ,在下边添加就行,
添加完成之后,点击下方的Apply & Restart
,等docker重新启动就可以。
5⃣️ 报EADDRINUSE
的错
主要日志中出现这个EADDRINUSE
,就是端口被占用的意思,可查看端口只占用情况:
lsof -i:3306
如果不出结果,就输入:sudo lsof -i:3306
解除端口占用:kill -9 3306