我有一台 RHEL 7.5 Linux EC2 机器。它有以下用户数据。
#cloud-config
rumcmd:
- hostname "2CPV-PQ-XX6901"
- echo "2CPV-PQ-XX6901" > /etc/hostname
- authconfig --update --disablesssd --disablesssdauth --disablemkhomedir
- echo "sudo /root/init_bootstrap.sh > /root/init_boot.log 2>&1" | at -m now + 8 minute
- service restart sshd
我想在重启时自动运行以下两个命令
sudo HTTPS_PROXY= http://someproxy.xxx.com:8080 dockerd &
sudo chmod 666 /var/run/docker.sock
我已经在 /etc/rc.local 中添加了上述命令,但是当我重新启动时,它似乎没有运行该命令,因为 docker 不起作用。
请建议我可以在哪里提供这两个命令,以便 docker deamon 在每次重启时自动运行。
答案1
如果你想docker
在启动时运行,最好的选择是使用随即使用的官方软件包systemd 文件。
类似这样的事情应该做:
export https_proxy=http://someproxy.xxx.com:8080
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
yum install docker-ce docker-ce-cli containerd.io
现在您必须在 systemd docker 配置中设置代理:
mkdir -p /etc/systemd/system/docker.service.d
cat > /etc/systemd/system/docker.service.d/http-proxy.conf << __EOF__
[Service]
Environment="HTTP_PROXY=${https_proxy}"
Environment="HTTPS_PROXY=${https_proxy}"
Environment="NO_PROXY=169.254.169.254,169.254.170.2"
__EOF__
您还应该将其添加ec2-user
到docker
组,这样您就不需要更改/var/run/docker.sock
权限:
usermod -a -G docker ec2-user
可以做的一切EC2 用户数据脚本。事实上,以上内容是从我的一个模板中复制粘贴的。
然后重新启动,一切都应该按预期工作。
希望有帮助:)