#!/bin/bash# 检查 Docker 是否已安装if ! command -v docker &> /dev/nullthen echo "Docker 未安装" echo "请先安装 Docker" echo "参考命令:" echo "curl -fsSL https://get.docker.com -o get-docker.sh" echo "sudo sh get-docker.sh" exitfi# 检查 docker-compose 是否已安装if ! command -v docker-compose &> /dev/nullthen echo "docker-compose 未安装" echo "请先安装 docker-compose" echo "参考命令:" echo "sudo curl -L \"https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)\" -o /usr/local/bin/docker-compose" echo "sudo chmod +x /usr/local/bin/docker-compose" exitfi# 进入项目所在目录cd /home/flow/deploy/deploy-online/project-docker# 使用 docker-compose 命令创建镜像docker-compose build# 启动容器docker-compose up -d# 检查容器是否启动成功if [ "$(docker ps -q -f name=my_container)" ]then echo "容器已启动"else echo "容器启动失败"fi
时间: 2023-07-18 20:39:35 浏览: 274
这是一个bash脚本,用于检查Docker和docker-compose是否已安装,并在项目目录下使用docker-compose构建和启动容器。如果容器成功启动,则输出“容器已启动”,否则输出“容器启动失败”。
您可以将此脚本保存为一个文件,例如“deploy.sh”,然后在终端中使用以下命令运行:
```
bash deploy.sh
```
注意,您需要将脚本中的项目目录、容器名称以及docker-compose版本等参数替换为您自己的实际情况。
相关问题
#!/bin/bash alias drh="docker run -itd --name $1 --hostname $2 nginx:latest" 失败传入参数
这段 Bash 脚本定义了一个名为 `drh` 的别名,用于在 Docker 中运行一个名为 `$1`、主机名为 `$2` 的 NGINX 容器。`$1` 和 `$2` 是通过脚本参数传入的。
如果执行这个脚本时没有传入参数,那么 `$1` 和 `$2` 就会为空,从而导致 Docker 命令执行失败。
要正确地使用这个脚本,需要在执行时传入两个参数,例如:
```
$ drh mynginx myhostname
```
这将会在 Docker 中运行一个名为 `mynginx`、主机名为 `myhostname` 的 NGINX 容器。
#!/bin/bash alias drh="docker run -itd --name $1 --hostname $2 nginx:latest" 用这个脚本传入参数失败
你可以尝试下面这个修改过的脚本:
```
#!/bin/bash
alias drh='docker run -itd --name "$1" --hostname "$2" nginx:latest'
```
使用单引号包裹整个命令,避免参数被解析。同时在 `$1` 和 `$2` 前加上双引号,以防止参数中包含空格或其他特殊字符时出现问题。
阅读全文