小编kah*_*ara的帖子

为什么运行服务器的 Docker 容器会向外界公开端口,即使该端口被 iptables 阻止?

我在 Docker 容器内运行 MySQL 时遇到问题。我的测试映像是从以下 Dockerfile 构建的:

# See: https://index.docker.io/u/brice/mysql/

FROM ubuntu:12.10
MAINTAINER Joni Kahara <joni.kahara@async.fi> 

# Because docker replaces /sbin/init: https://github.com/dotcloud/docker/issues/1024
RUN dpkg-divert --local --rename --add /sbin/initctl
RUN ln -s /bin/true /sbin/initctl

RUN apt-get update
RUN apt-get upgrade -y

RUN apt-get -y install mysql-server

RUN sed -i -e"s/^bind-address\s*=\s*127.0.0.1/bind-address = 0.0.0.0/" /etc/mysql/my.cnf

RUN /usr/bin/mysqld_safe & \
    sleep 10s && \
    mysql -e "GRANT ALL ON *.* to 'root'@'%'; FLUSH PRIVILEGES;"

EXPOSE 3306

VOLUME ["/var/lib/mysql", "/var/log/mysql"]

CMD ["mysqld_safe"]
Run Code Online (Sandbox Code Playgroud)

从上面的文件构建图像后,我运行它:

docker run …
Run Code Online (Sandbox Code Playgroud)

iptables docker

24
推荐指数
1
解决办法
3万
查看次数

标签 统计

docker ×1

iptables ×1