Linux EC2 的启动脚本

Linux EC2 的启动脚本

我有一台 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-userdocker组,这样您就不需要更改/var/run/docker.sock权限:

usermod -a -G docker ec2-user

可以做的一切EC2 用户数据脚本。事实上,以上内容是从我的一个模板中复制粘贴的。

然后重新启动,一切都应该按预期工作。

希望有帮助:)

相关内容