English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
CentOS7 Docker 防火墙の簡単な設定
禁用 firewalld 服务
systemctl disable firewalld systemctl stop firewalld
安装 iptables 防火墙服务
yum install iptables-services
创建 iptables 配置脚本
cat >> /usr/local/bin/fired.sh <<'EOF' #!/bin/bash iptables -F iptables -X iptables -Z iptables -P INPUT DROP iptables -P OUTPUT ACCEPT iptables -P FORWARD ACCEPT iptables -A INPUT -i lo -j ACCEPT iptables -A INPUT -i eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT iptables -A INPUT -i eth0 -p icmp --icmp-type 8 -j ACCEPT #iptables -A INPUT -p tcp --dport 80 -i eth0 -m state -state NEW -m recent -update -seconds 60 -hitcount 50 -j DROP #iptables -A OUTPUT -o eth0 -m owner -uid-owner vivek -p tcp --dport 80 -m state -state NEW,ESTABLISHED -j ACCEPT iptables -A INPUT -i eth0 -p tcp --sport 1:1023 --dport 1:1023 --syn -j DROP iptables -A INPUT -p tcp -i eth0 --dport 22 --sport 1024:65534 -j ACCEPT iptables -A INPUT -p tcp --dport 80 --sport 1024:65534 -j ACCEPT iptables -A INPUT -p tcp --dport 2376 --sport 1024:65534 -j ACCEPT iptables -A INPUT -p tcp --dport 3306 --sport 1024:65534 -j ACCEPT # OpenVPN Configuration # iptables -A POSTROUTING -t nat -s 10.8.0.0/24 -o eth0 -j MASQUERADE # iptables -A FORWARD -i tun+ -j ACCEPT # iptables -A INPUT -s 10.8.0.0/24 -j ACCEPT # iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT # iptables -A INPUT -p TCP -i eth0 --dport 10173 --sport 1024:65534 -j ACCEPT # iptables -A INPUT -p UDP -i eth0 --dport 10173 --sport 1024:65534 -j ACCEPT EOF chmod +x /usr/local/bin/fired.sh
起動時のオプションに追加します
cat >> /etc/rc.d/rc.local <<EOF # Firewall & Docker /usr/bin/systemctl iptables.serviceを起動します /usr/local/bin/fired.sh /usr/bin/systemctl dockerを起動します EOF chmod +x /etc/rc.d/rc.local
関連サービスを自動起動停止します
# 注: Dockerが起動すると、自動的に一部の systemctl iptables.serviceを無効にします systemctl dockerを無効にします
dockerのCentOS7にいくつかの問題があります
CentOSのdocker上でmysqlをインストールすると、chown modエラーが表示されます。 /var/lib/mysql permission denied、以下の方法1で解決します。
CentOS上でデータボリュームをマウントし、コンテナ内でデータボリュームにアクセスしようとすると、permission deniedエラーが発生します。以下の方法1で解決します。
17安全SELinuxが一部のセキュリティ権限を禁止しており、mysqlとmariadbがマウントする際に問題が発生しています。/var/lib/mysqlを実行すると、以下のようなメッセージが表示されます:
[root@localhost mariadb]# docker run -d -v ~/mariadb/data/:/var/lib/mysql -v ~/mariadb/config/:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=‘123456‘ test01/mariadb 19c4aa113c610f53f9720ee806e3c918dd18d21dff75c043bdd6db60011a135d [root@localhost mariadb]# docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 19c4aa113c61 test01/mariadb "docker-entrypoint.sh" 4 秒前 終了 (1) 1 秒前 desperate_kelle
logsコマンドで確認すると、以下のようなメッセージが表示されます:chown: ‘/var/lib/mysql/....‘: Permission denied
したがって、解決策は以下の3つです:
2コンテナにポートマッピングを持つときに、以下のようなメッセージが表示されることがあります:
1 iptables failed: iptables --wait -t nat -A DOCKER -p tcp -d 0/0 --dport 52080 -j DNAT --to-destination 192.168.20.22:52080 ! -i docker0: iptables: No chain/target/match by that name
これについて何も説明がなく、http:を参照しました。//www.lxy520.net/2015/09/24/centos-7-docker-qi-dong-bao/この記事はiptablesのファイルを変更する方法について述べていますが、CentOSのみです。7ファイルが存在しないか、iptablesのサービスがインストールされていない可能性があります。最終的にホストマシンを再起動し、復旧しました。その間、firewallを使用して試みました。-cmdコマンドで防火壁の確認と停止。
まとめ
これでこの記事の全ての内容が終わりました。この記事の内容が皆様の学習や仕事に参考になることを願っています。何か疑問があれば、コメントを残してください。皆様の呐喊教程へのサポートに感謝します。
声明:この記事の内容はインターネットから取得しており、著作権者に帰属します。インターネットユーザーにより自発的に提供されたコンテンツであり、このサイトは所有権を有しておらず、人間による編集は行われていません。著作権侵害が疑われる場合は、以下のメールアドレスにご連絡ください:notice#oldtoolbag.com(メール送信時は、#を@に変更してください。)で通報し、関連する証拠を提供してください。一旦確認がとれましたら、このサイトは即座に侵害疑いの内容を削除します。