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不會管理運行在這種類型網絡上的容器的防火牆規則。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章