用docker时遇到的错及解决方法 - Go语言中文社区

用docker时遇到的错及解决方法


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/lancmysqllancmysql目录是用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

版权声明:本文来源CSDN,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/weixin_41767649/article/details/79584799
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。
  • 发表于 2020-03-01 22:23:39
  • 阅读 ( 1134 )
  • 分类:docker

0 条评论

请先 登录 后评论

官方社群

GO教程

猜你喜欢