Вам когда-нибудь приходилось сталкиваться с ситуацией, когда вам нужно было скопировать файлы из контейнера SQL Server? Это может быть немного сложно, но к счастью, есть простая команда, которая может помочь вам с этой задачей – команда docker cp.
Давайте пройдемся по быстрому демо, чтобы увидеть, как это работает. В этом примере мы не будем устанавливать SQL Server с нуля. Вместо этого мы будем использовать существующий образ SQL Server и скопируем его файл Summary.txt. Если у вас нет образа SQL Server 2017, вы можете легко загрузить его из Docker Hub, выполнив следующую команду:
docker pull microsoft/mssql-server-windowsПосле того, как у вас будет образ, вы можете создать контейнер с помощью следующей команды:
docker run -d -p 15789:1433 --env ACCEPT_EULA=Y --env sa_password=Testing11@@ --name testcontainer microsoft/mssql-server-windowsОтлично! Теперь, когда у нас есть работающий контейнер, давайте откроем сеанс PowerShell внутри контейнера:
docker exec -it testcontainer powershellКогда мы находимся внутри контейнера, мы можем проверить расположение файла, который мы хотим скопировать:
cd "C:\Program Files\Microsoft SQL Server\140\Setup Bootstrap\Log\"
lsТеперь давайте выйдем из сеанса PowerShell внутри контейнера. Мы собираемся скопировать файл Summary.txt из контейнера в каталог C:\temp на хосте. Для этого выполните следующую команду на хосте:
docker cp testcontainer:"C:\Program Files\Microsoft SQL Server\140\Setup Bootstrap\Log\Summary.txt" C:\tempИ вот! Теперь у нас есть файл на хосте и мы можем просмотреть его по своему усмотрению.
Конечно, команда docker cp также работает для копирования файлов в контейнер. Допустим, мы хотим скопировать файл с именем test.txt из каталога C:\temp на нашем хосте в каталог C:\ в контейнере. Мы просто выполняем следующую команду:
docker cp C:\temp\test.txt testcontainer:C:Это так просто! Просто не забудьте всегда указывать исходный каталог в первой команде cp.
Спасибо за чтение! Мы надеемся, что этот статья помогла вам понять, как копировать файлы в контейнерах SQL Server с помощью команды docker cp.