docker: invalid publish opts format (should be name=value but got

在使用docker安装mysql的时候报了这个错误:
docker: invalid publish opts format (should be name=value but got ‘3307:3306’).
原因是因为我期望docker容器和宿主机公用一套网络,即指定–net=host

docker run \
	--name=otter-mysql \
	-p 3307:3306 \
	--net=host \
	-e MYSQL_ROOT_PASSWORD=root \
	-v /srv/otter-mysql/conf:/etc/mysql/conf.d \
    -v /srv/otter-mysql/logs:/logs \
    -v /srv/otter-mysql/data:/var/lib/mysql \
	-d mysql:5.7

这是原来的安装命令,修改为如下就好了

	--name=otter-mysql \
	--net=host \
	-e MYSQL_ROOT_PASSWORD=root \
	-v /srv/otter-mysql/conf:/etc/mysql/conf.d \
    -v /srv/otter-mysql/logs:/logs \
    -v /srv/otter-mysql/data:/var/lib/mysql \
	-d mysql:5.7

原因如下:
容器不需要在iptables里添加任何转发规则,因为它已经attach到了和宿主一样的网络上。所以,不支持使用参数“-p”的端口映射,并且Docker不会管理运行在这种类型网络上的容器的防火墙规则。

猜你喜欢

转载自blog.csdn.net/s78365126/article/details/106494936