鍍金池/ 問答/Linux/ docker cp 寫在shell腳本中復(fù)制不完整,但是將腳本中的命令逐行執(zhí)行則

docker cp 寫在shell腳本中復(fù)制不完整,但是將腳本中的命令逐行執(zhí)行則沒問題,代碼如下:

#!/bin/bash

#拉取鏡像
sudo docker pull mysql:5.7.21

#創(chuàng)建目錄
sudo mkdir /opt/mysql_5.7.21
#用于獲取未映射
sudo docker run -p 3306:3306 --name mysql_5.7.21 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7.21

sudo docker cp mysql_5.7.21:/etc/mysql /opt/mysql_5.7.21/etc
sudo docker cp mysql_5.7.21:/var/log/mysql /opt/mysql_5.7.21/logs
sudo docker cp mysql_5.7.21:/var/lib/mysql /opt/mysql_5.7.21/data

#刪除鏡像
sudo docker stop mysql_5.7.21 && sudo docker rm mysql_5.7.21

#真正執(zhí)行并映射目錄
sudo docker run -p 3306:3306 --name mysql_5.7.21 \
  -v /opt/mysql_5.7.21/etc:/etc/mysql:ro \
  -v /opt/mysql_5.7.21/logs:/var/log/mysql \
  -v /opt/mysql_5.7.21/data:/var/lib/mysql \
  -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7.21
腳本執(zhí)行完畢后 會發(fā)生/opt/mysql_5.7.21/data目錄中的文件復(fù)制不完整
從而導(dǎo)致容器運行失敗
使用if [ $? -eq 0 ];then 來等待依舊無效

求大神指點迷津

回答
編輯回答
胭脂淚

cp 要加 -r 參數(shù)遞歸復(fù)制文件

2018年7月26日 07:46