Новичок: создание dockerfile для SQL Server 2017 - PullRequest
0 голосов
/ 04 апреля 2019

Я очень новичок в докере и, хотя я привыкаю к ​​синтаксису, простые вещи все еще ускользают от меня.

В моей среде разработки я хотел бы запустить SQL Server 2017/19 в качестве докера контейнеров,Я выполнил поиск в Google и обнаружил следующее на веб-сайте Microsoft:

"Чтобы запустить образ контейнера с помощью Docker, вы можете использовать следующую команду из оболочки bash (Linux / macOS) или с повышенными привилегиями PowerShellКомандная строка. "

docker run -e "ACCEPT_EULA=Y" -e "SA_PASSWORD=<YourStrong!Passw0rd>" `
   -p 1433:1433 --name sql1 `
   -d mcr.microsoft.com/mssql/server:2017-latest

Если я хотел бы обернуть это в простой файл dockerfile или docker-compose, как мне это сделать?

Ответы [ 2 ]

0 голосов
/ 04 апреля 2019

в качестве предисловия: вам не нужен dockerfile или docker-compose для запуска экземпляра сервера sql для вашей среды разработки. Если вы просто хотите быстро запустить свой последний контейнер на 2017 год, просто введите команду, которую вы уже нашли.

Однако, если вы хотите легко сохранить команду, не вводя ее каждый раз, почему бы не добавить простой скрипт bat в вашу папку.

Хотя, если вы хотите расширить свой образ докера (например, установить дополнительные библиотеки), вам понадобится файл докера. Пожалуйста, также обратитесь к документации докера (отличная документация), чтобы узнать, как это сделать. Или, если вы хотите создать несколько экземпляров докера (для того, чтобы они могли легко общаться друг с другом), тогда файл docker-compose - это то, что вам нужно.

Но для того, чтобы действительно ответить на ваш вопрос: Создайте какую-нибудь папку с 2 файлами

folder
 |__> DockerFile
 |__> docker-compose.yml

Содержимое вашего DockerFile будет: (имейте в виду, что этот пример здесь на самом деле ничего не делает, кроме указания на существующий образ Microsoft , но если вы используете его без docker-compose, вы также можете определить здесь сопоставления файлов, настройку пароля и т. д. и просто запустить новый контейнер из этого нового предварительно настроенного образа)

FROM microsoft/mssql-server-windows-developer:2017
# environment configuration moved into docker-compose file
# EXPOSE 1433:1433
# ENV attach_dbs="[{'dbName':'YourDBName','dbFiles':['C:\\temp\\yourDB.mdf','C:\\temp\\yourDB_Log.ldf']}]"
# ENV ACCEPT_EULA=Y
# ENV sa_password=yourPassword

Тогда ваш docker-compose.yml может выглядеть так:

version: '3'
services:
  yourServiceName:
    container_name: yourContainerName
    build: .
    ports:
    - "1433:1433"
    volumes:
    - .:C:/temp/
    environment:
      sa_password: "yourPassword"
      ACCEPT_EULA: "Y"
      attach_dbs: "[{'dbName':'YourDBName','dbFiles':['C:\\\\temp\\\\yourDB.mdf','C:\\\\temp\\\\yourDB_Log.ldf']}]"

вызов docker-compose up в cml или PowerShell внутри папки запустит этот новый контейнер SQL-Server.

Независимо от того, я бы порекомендовал сопоставить файлы mdf и ldf для быстрого доступа и, например, для сохранения состояния, даже если вы выключили образ докера (если это ваше желаемое поведение).

0 голосов
/ 04 апреля 2019

docker-compose.yml:

version: "3.3"

services:
  msql:
    image: mcr.microsoft.com/mssql/server:2017-latest
    environment: {
      ACCEPT_EULA: "Y",
      SA_PASSWORD: "<YourStrong!Passw0rd>"
    }
    ports:
      - "1433:1433"
    container_name: "sql1"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...