Docker自动开放防火墙端口
解决docker运行容器自动开放防火墙端口, Firewalld无法控制docker端口情况
被这个东西坑了几次了,总以为自己屏蔽了端口,但是发现没有屏蔽导致两次被清库,这次终于找到原因了。
因为docker是直接走iptables转发,不受自带防火墙的控制,坑死了。
#需要修改/usr/lib/systemd/system/docker.service
vi /usr/lib/systemd/system/docker.service
#找到 ExecStart=/usr/bin/dockerd -H fd://xxxxx 在中间添加 --iptables=false
修改之后 :
ExecStart=/usr/bin/dockerd --iptables=false -H fd://xxxxxx
:wq 保存退出
#然后
systemctl daemon-reload
systemctl restart docker
新装系统操作步骤
0 更换系统源
采用腾讯源,+配置Docker安装源
# mv /etc/yum.repo/CentOS.repo CentOS.repo.Backup
wget -O /etc/yum.repos.d/docker-ce.repo https://download.docker.com/linux/centos/docker-ce.repo
sudo sed -i 's+download.docker.com+mirrors.cloud.tencent.com/docker-ce+' /etc/yum.repos.d/docker-ce.repo
sudo yum makecache fast
1 epel安装
yum install epel-release -y
2 系统更新
yum update -y
3 常用组件工具安装
yum install htop git vim net-tools telnet zip unzip wget -y
4 Docker配置
# 配置文件修改:
vim /etc/docker/daemon.json
{
"registry-mirrors": ["https://d3is0bty.mirror.aliyuncs.com","http://f1361db2.m.daocloud.io"],
"insecure-registries": ["http://hub.nercoa.com"],
"data-root": "/mnt/sdb2/DockerRootDir",
"storage-driver": "overlay2",
"log-driver":"json-file",
"log-opts": {"max-size":"500m", "max-file":"3"}
}
# "graph": "/mnt/docker-data", 亦可指定Docker的根目录位置。
4.1 解决docker运行容器自动开放防火墙端口,
# 解决docker运行容器自动开放防火墙端口, Firewalld无法控制docker端口情况
被这个东西坑了几次了,总以为自己屏蔽了端口,但是发现没有屏蔽导致两次被清库,这次终于找到原因了。
因为docker是直接走iptables转发,不受自带防火墙的控制,坑死了。
#需要修改/usr/lib/systemd/system/docker.service
vi /usr/lib/systemd/system/docker.service
#找到 ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock 在中间添加 --iptables=false
修改之后 :
ExecStart=/usr/bin/dockerd --iptables=false -H fd:// --containerd=/run/containerd/containerd.sock
# 上面的位置不能放错,放错启动会报错。
:wq 保存退出
#然后
systemctl daemon-reload
systemctl restart docker
4.2 限制Docker容器生成大量core文件
## 限制Docker容器生成大量core文件,上面之前配置文件中限制了日志的文件,但无法限制错误时生成的转储文件
vi /usr/lib/systemd/system/docker.service
# 在容器服务当中添加默认值 --default-ulimit core=0:0
/lib/systemd/system/docker.service
ExecStart=/usr/bin/dockerd --iptables=false -H fd:// --containerd=/run/containerd/containerd.sock --default-ulimit core=0:0
5 命令自动补全
yum install bash-completion -y
安装好后,重新登陆即可(刷新bash环境)。
6 防火墙,SELINUX
systemctl stop firewalld.service && systemctl disable firewalld.service
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
reboot
7 启用IPV4转发功能
Docker启动报错
WARNING:IPv4 forwarding is disabled. Networking will not work.
解决办法:
vim /etc/sysctl.conf
net.ipv4.ip_forward=1
# 添加这段代码
重启network服务
systemctl restart network && systemctl restart docker
查看是否修改成功 (备注:返回1,就是成功)
sysctl net.ipv4.ip_forward
正常会输出net.ipv4.ip_forward = 1
8 SSH配置
- 修改ssh端口号
- 上传公钥
- 修改断开时间
- 关闭密码登陆,只允许证书登陆
#Port 22
Port $(YourPort)
ClientAliveInterval 600
ClientAliveCountMax 3
# 将这两个参数值修改为no:
PasswordAuthentication no
ChallengeResponseAuthentication no
#然后重启SSH服务。
现在我们就已经限制用户的SSH登录方式,只允许用key方式登录。
进一步测试,如果我们用一台不带信任key的机器尝试登录,那么会提示如下信息。Permission denied (publickey,gssapi-keyex,gssapi-with-mic).
证明限制SSH登录方式成功。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之家整理,本文链接:https://www.bmabk.com/index.php/post/160336.html