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