如何在一个Shell脚本中安装和使用Docker?

时间:2020-03-09 23:13:39

标签: bash docker ray

我需要安装docker并使用一个脚本登录到我的存储库。我正在使用Ubuntu 16.04,但也可以使用18.04。

docker_setup.sh:

sudo apt-get install -y docker.io
sudo service docker start
sudo usermod -a -G docker ubuntu
exec sudo su -l ubuntu
docker login -u $DOCKER_USER -p $DOCKER_PW

这在shell脚本中不起作用,因为sudo su命令打开了一个子shell。由于相同的原因,我无法执行newgrp docker。而且,我不能做类似的事情

newgrp docker << DOCKERSUBHSELL
docker login -u $DOCKER_USER -p $DOCKER_PW
DOCKERSUBSHELL

因为我正在使用ray library,并且该库的后面部分(在后台运行)也希望能够使用docker命令。有解决方案吗?

2 个答案:

答案 0 :(得分:0)

这很容易。您可以完全像这样制作Shell脚本,但必须使用cat和EOF。让我解释一下。

pi@raspberry$ sudo ./script.sh

此脚本将包含以下输出

cat << EOF | sudo apt-get install -y docker.io
   sudo service docker start
   sudo usermod -a -G docker ubuntu
   exec sudo su -l ubuntu
   exit
   docker login -u $DOCKER_USER -p $DOCKER_PW
   EOF

如果此命令“ docker login -u $ DOCKER_USER -p $ DOCKER_PW”设置为在ubuntu用户中执行,然后从我的bash脚本中删除“退出”,则操作完成。

让我知道它是否有效或结果,以便我进一步修改它并为您提供帮助。谢谢:)

答案 1 :(得分:0)

这可能是必需的:

sudo su -l ubuntu -c bash << DOCKERSUBSHELL
    docker login -u "$DOCKER_USER" -p "$DOCKER_PW"
DOCKERSUBSHELL