TASK1. Docker Volume 플러그인 구성
Azure 로그인
PS C:\workspace> az login
Note, we have launched a browser for you to login. For old experience with device code, use "az login --use-device-code"
You have logged in. Now let us find all the subscriptions to which you have access...
[
{
"cloudName": "AzureCloud",
"id": "24ebf866-0c20-435b-af0f-xxxxxxxxxx",
"isDefault": true,
"name": "Visual Studio Enterprise",
"state": "Enabled",
"tenantId": "075f7662-60f9-46bb-9158-xxxxxxxxx",
"user": {
"name": "sooabia22@sptek.co.kr",
"type": "user"
}
}
]
PS C:\workspace>
PS C:\workspace>
PS C:\workspace> az account show
{
"environmentName": "AzureCloud",
"id": "24ebf866-0c20-435b-af0f-xxxxxxxxxx",
"isDefault": true,
"name": "Visual Studio Enterprise",
"state": "Enabled",
"tenantId": "075f7662-60f9-46bb-9158-xxxxxxxxxx",
"user": {
"name": "xxxxxxx@xxxxx.co.kr",
"type": "user"
}
}
PS C:\workspace>
PS C:\workspace>
Docker 리소스 그룹 생성
PS C:\workspace> az group create --name "rg-DockerStorage" --location westus2
{
"id": "/subscriptions/24ebf866-0c20-435b-af0f-xxxxxxxxxx/resourceGroups/rg-DockerStorage",
"location": "westus2",
"managedBy": null,
"name": "rg-DockerStorage",
"properties": {
"provisioningState": "Succeeded"
},
"tags": null,
"type": null
}
새 저장소 계정 생성
PS C:\workspace> az storage account create --location westus2 --name acstudy --resource-group "rg-DockerStorage" --sku Standard_LRS
{
"accessTier": null,
"creationTime": "2019-04-08T08:03:37.865216+00:00",
"customDomain": null,
"enableAzureFilesAadIntegration": null,
"enableHttpsTrafficOnly": false,
"encryption": {
"keySource": "Microsoft.Storage",
"keyVaultProperties": null,
"services": {
"blob": {
"enabled": true,
"lastEnabledTime": "2019-04-08T08:03:37.974598+00:00"
},
"file": {
"enabled": true,
"lastEnabledTime": "2019-04-08T08:03:37.974598+00:00"
},
"queue": null,
"table": null
}
},
"failoverInProgress": null,
"geoReplicationStats": null,
"id": "/subscriptions/24ebf866-0c20-435b-af0f-xxxxxxxx/resourceGroups/rg-DockerStorage/providers/Microsoft.Storage/storageAccounts/acstudy",
"identity": null,
"isHnsEnabled": null,
"kind": "Storage",
"lastGeoFailoverTime": null,
"location": "westus2",
"name": "acstudy",
"networkRuleSet": {
"bypass": "AzureServices",
"defaultAction": "Allow",
"ipRules": [],
"virtualNetworkRules": []
},
"primaryEndpoints": {
"blob": "https://acstudy.blob.core.windows.net/",
"dfs": null,
"file": "https://acstudy.file.core.windows.net/",
"queue": "https://acstudy.queue.core.windows.net/",
"table": "https://acstudy.table.core.windows.net/",
"web": null
},
"primaryLocation": "westus2",
"provisioningState": "Succeeded",
"resourceGroup": "rg-DockerStorage",
"secondaryEndpoints": null,
"secondaryLocation": null,
"sku": {
"capabilities": null,
"kind": null,
"locations": null,
"name": "Standard_LRS",
"resourceType": null,
"restrictions": null,
"tier": "Standard"
},
"statusOfPrimary": "available",
"statusOfSecondary": null,
"tags": {},
"type": "Microsoft.Storage/storageAccounts"
}
PS C:\workspace>
Azure 저장소 계정 확인
PS C:\workspace> az storage account list --resource-group "rg-DockerStorage" --output table CreationTime EnableHttpsTrafficOnly Kind Location Name PrimaryLocation ProvisioningState ResourceGroup StatusOfPrimary -------------------------------- ------------------------ ------- ---------- ------- ----------------- ------------------- ---------------- ----------------- 2019-04-08T08:03:37.865216+00:00 False Storage westus2 acstudy westus2 Succeeded rg-DockerStorage available 2019-04-05T04:57:01.843056+00:00 False Storage westus2 sansesa westus2 Succeeded rg-DockerStorage available PS C:\workspace>
저장소 계정 KEY 목록 확인
PS C:\workspace> az storage account keys list --account-name acstudy --resource-group "rg-DockerStorage" --output table KeyName Permissions Value --------- ------------- ---------------------------------------------------------------------------------------- key1 Full bQpSz03Yq0as81yuO1Y4BE9KsYekC/KuDK3rW93EiMzHs++v6csK0/rLfiWMxH+ot3K8W6J9Cxxxxxxxxxxx== key2 Full lvExSn+rOHXZeK9WVRkw/GWeqg6VlE00UmHa8D50ZB0dVi///50AFEsNlTwznmq2kRDudgtkGEuvpxxxxxxxxxx== PS C:\workspace>
Docker machine 활성화
PS C:\workspace> docker-machine env azuredockervm | Invoke-Expression PS C:\workspace> docker-machine ls NAME ACTIVE DRIVER STATE URL SWARM DOCKER ERRORS azuredockervm * azure Running tcp://13.77.178.238:2376 v18.09.4 localdockervm - hyperv Running tcp://[fe80::215:5dff:fe0b:7308]:2376 v18.09.4 PS C:\workspace> docker-machine ip azuredockervm 13.77.178.238 PS C:\workspace>
SSH 저장 KEY및 경로(SSHKeyPath) 확인
PS C:\workspace> docker-machine inspect azuredockervm
{
"ConfigVersion": 3,
"Driver": {
"IPAddress": "",
"MachineName": "azuredockervm",
"SSHUser": "peadmin",
"SSHPort": 22,
"SSHKeyPath": "C:\\Users\\Sanse\\.docker\\machine\\machines\\azuredockervm\\id_rsa",
"StorePath": "C:\\Users\\Sanse\\.docker\\machine",
"SwarmMaster": false,
"SwarmHost": "tcp://0.0.0.0:3376",
"SwarmDiscovery": "",
"ClientID": "",
"ClientSecret": "",
"Environment": "AzurePublicCloud",
"SubscriptionID": "24ebf866-0c20-435b-af0f-xxxxxxxxxxxx",
"ResourceGroup": "rg-DockerMachine",
"DockerPort": 2376,
"Location": "westus2",
"Size": "Standard_DS2_v2",
"Image": "Canonical:UbuntuServer:16.04.0-Lts:latest",
"VirtualNetwork": "docker-machine-vnet",
"SubnetName": "docker-machine",
"SubnetPrefix": "192.168.0.0/16",
"AvailabilitySet": "docker-machine",
"StorageType": "Standard_LRS",
"OpenPorts": [
"80",
"8080"
],
"PrivateIPAddr": "",
"UsePrivateIP": false,
"NoPublicIP": false,
"DNSLabel": "",
"StaticPublicIP": true,
"CustomDataFile": ""
},
"DriverName": "azure",
"HostOptions": {
"Driver": "",
"Memory": 0,
"Disk": 0,
"EngineOptions": {
"ArbitraryFlags": [],
"Dns": null,
"GraphDir": "",
"Env": [],
"Ipv6": false,
"InsecureRegistry": [],
"Labels": [],
"LogLevel": "",
"StorageDriver": "",
"SelinuxEnabled": false,
"TlsVerify": true,
"RegistryMirror": [],
"InstallURL": "https://get.docker.com"
},
"SwarmOptions": {
"IsSwarm": false,
"Address": "",
"Discovery": "",
"Agent": false,
"Master": false,
"Host": "tcp://0.0.0.0:3376",
"Image": "swarm:latest",
"Strategy": "spread",
"Heartbeat": 0,
"Overcommit": 0,
"ArbitraryFlags": [],
"ArbitraryJoinFlags": [],
"Env": null,
"IsExperimental": false
},
"AuthOptions": {
"CertDir": "C:\\Users\\Sanse\\.docker\\machine\\certs",
"CaCertPath": "C:\\Users\\Sanse\\.docker\\machine\\certs\\ca.pem",
"CaPrivateKeyPath": "C:\\Users\\Sanse\\.docker\\machine\\certs\\ca-key.pem",
"CaCertRemotePath": "",
"ServerCertPath": "C:\\Users\\Sanse\\.docker\\machine\\machines\\azuredockervm\\server.pem",
"ServerKeyPath": "C:\\Users\\Sanse\\.docker\\machine\\machines\\azuredockervm\\server-key.pem",
"ClientKeyPath": "C:\\Users\\Sanse\\.docker\\machine\\certs\\key.pem",
"ServerCertRemotePath": "",
"ServerKeyRemotePath": "",
"ClientCertPath": "C:\\Users\\Sanse\\.docker\\machine\\certs\\cert.pem",
"ServerCertSANs": [],
"StorePath": "C:\\Users\\Sanse\\.docker\\machine\\machines\\azuredockervm"
}
},
"Name": "azuredockervm"
}
PS C:\workspace>
SecureCRT Public Key설정
SecureCRT 로 docker-machine 로그인
Azure File Docker 볼륨 드라이버 설정 파일 다운로드
| azurefile-dockervolumedriver.default | azurefile-dockervolumedriver.service |
|---|---|
# Environment file for azurefile-dockervolumedriver.service # # AF_OPTS=--debug # AZURE_STORAGE_BASE=core.windows.net AZURE_STORAGE_ACCOUNT=youraccount AZURE_STORAGE_ACCOUNT_KEY=yourkey | [Unit] Description=Azure File Service Docker Volume Driver Documentation=https://github.com/Azure/azurefile-dockervolumedriver/ Requires=docker.service After=nfs-utils.service Before=docker.service [Service] EnvironmentFile=/etc/default/azurefile-dockervolumedriver ExecStart=/usr/bin/azurefile-dockervolumedriver $AF_OPTS Restart=always StandardOutput=syslog [Install] WantedBy=multi-user.target |
peadmin@azuredockervm:~$ peadmin@azuredockervm:~$ sudo -s root@azuredockervm:~# root@azuredockervm:~# wget -O azurefile-dockervolumedriver.default https://raw.githubusercontent.com/Azure/azurefile-dockervolumedriver/master/contrib/init/systemd/azurefile-dockervolumedriver.default --2019-04-08 08:32:02-- https://raw.githubusercontent.com/Azure/azurefile-dockervolumedriver/master/contrib/init/systemd/azurefile-dockervolumedriver.default Resolving raw.githubusercontent.com (raw.githubusercontent.com)... 151.101.52.133 Connecting to raw.githubusercontent.com (raw.githubusercontent.com)|151.101.52.133|:443... connected. HTTP request sent, awaiting response... 200 OK Length: 187 [text/plain] Saving to: 쁝zurefile-dockervolumedriver.default azurefile-dockervolume 100%[============================>] 187 --.-KB/s in 0s 2019-04-08 08:32:02 (36.4 MB/s) - 쁝zurefile-dockervolumedriver.defaultsaved [187/187] root@azuredockervm:~# wget -O azurefile-dockervolumedriver.service https://raw.githubusercontent.com/Azure/azurefile-dockervolumedriver/master/contrib/init/systemd/azurefile-dockervolumedriver.service --2019-04-08 08:32:11-- https://raw.githubusercontent.com/Azure/azurefile-dockervolumedriver/master/contrib/init/systemd/azurefile-dockervolumedriver.service Resolving raw.githubusercontent.com (raw.githubusercontent.com)... 151.101.52.133 Connecting to raw.githubusercontent.com (raw.githubusercontent.com)|151.101.52.133|:443... connected. HTTP request sent, awaiting response... 200 OK Length: 399 [text/plain] Saving to: 쁝zurefile-dockervolumedriver.service azurefile-dockervolume 100%[============================>] 399 --.-KB/s in 0s 2019-04-08 08:32:11 (88.5 MB/s) - 쁝zurefile-dockervolumedriver.servicesaved [399/399] root@azuredockervm:~#
Azure File Docker 볼륨 드라이버 다운로드
root@azuredockervm:~# wget https://github.com/Azure/azurefile-dockervolumedriver/releases/download/v0.5.1/azurefile-dockervolumedriver --2019-04-08 09:06:35-- https://github.com/Azure/azurefile-dockervolumedriver/releases/download/v0.5.1/azurefile-dockervolumedriver Resolving github.com (github.com)... 192.30.255.113, 192.30.255.112 Connecting to github.com (github.com)|192.30.255.113|:443... connected. HTTP request sent, awaiting response... 302 Found Location: https://github-production-release-asset-2e65be.s3.amazonaws.com/43052748/1ee7d1e6-7d81-11e6-8974-23a88ac83569?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIWNJYAX4CSVEH53A%2F20190408%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20190408T090635Z&X-Amz-Expires=300&X-Amz-Signature=11d90c98645bf649154024a58956ea65b3ee9a7ef5e15089300282d1ed8924f3&X-Amz-SignedHeaders=host&actor_id=0&response-content-disposition=attachment%3B%20filename%3Dazurefile-dockervolumedriver&response-content-type=application%2Foctet-stream [following] --2019-04-08 09:06:35-- https://github-production-release-asset-2e65be.s3.amazonaws.com/43052748/1ee7d1e6-7d81-11e6-8974-23a88ac83569?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIWNJYAX4CSVEH53A%2F20190408%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20190408T090635Z&X-Amz-Expires=300&X-Amz-Signature=11d90c98645bf649154024a58956ea65b3ee9a7ef5e15089300282d1ed8924f3&X-Amz-SignedHeaders=host&actor_id=0&response-content-disposition=attachment%3B%20filename%3Dazurefile-dockervolumedriver&response-content-type=application%2Foctet-stream Resolving github-production-release-asset-2e65be.s3.amazonaws.com (github-production-release-asset-2e65be.s3.amazonaws.com)... 52.216.98.19 Connecting to github-production-release-asset-2e65be.s3.amazonaws.com (github-production-release-asset-2e65be.s3.amazonaws.com)|52.216.98.19|:443... connected. HTTP request sent, awaiting response... 200 OK Length: 9102400 (8.7M) [application/octet-stream] Saving to: 쁝zurefile-dockervolumedriver azurefile-dockervolume 100%[============================>] 8.68M 12.2MB/s in 0.7s 2019-04-08 09:06:36 (12.2 MB/s) - 쁝zurefile-dockervolumedriversaved [9102400/9102400] root@azuredockervm:~#
Azure Docker Volume Driver 설정
root@azuredockervm:~# mv azurefile-dockervolumedriver /usr/bin/
root@azuredockervm:~# chmod +x /usr/bin/azurefile-dockervolumedriver
root@azuredockervm:~#
root@azuredockervm:~#
root@azuredockervm:~# mv azurefile-dockervolumedriver.default /etc/default/azurefile-dockervolumedriver
root@azuredockervm:~#
root@azuredockervm:~#
root@azuredockervm:~# vi /etc/default/azurefile-dockervolumedriver
root@azuredockervm:~# cat /etc/default/azurefile-dockervolumedriver
# Environment file for azurefile-dockervolumedriver.service
#
# AF_OPTS=--debug
# AZURE_STORAGE_BASE=core.windows.net
AZURE_STORAGE_ACCOUNT=acstudy
AZURE_STORAGE_ACCOUNT_KEY=bQpSz03Yq0as81yuO1Y4BE9KsYekC/KuDK3rW93EiMzHs++v6csK0/rLfiWMxH+ot3K8W6J9Ct2HshtwHzhK8Q==
root@azuredockervm:~#
root@azuredockervm:~# mv azurefile-dockervolumedriver.service /etc/systemd/system/azurefile-dockervolumedriver.service
root@azuredockervm:~#
root@azuredockervm:~# systemctl daemon-reload
root@azuredockervm:~# systemctl enable azurefile-dockervolumedriver
Created symlink from /etc/systemd/system/multi-user.target.wants/azurefile-dockervolumedriver.service to /etc/systemd/system/azurefile-dockervolumedriver.service.
root@azuredockervm:~#
root@azuredockervm:~#
root@azuredockervm:~# systemctl start azurefile-dockervolumedriver
root@azuredockervm:~# systemctl status azurefile-dockervolumedriver
[0m azurefile-dockervolumedriver.service - Azure File Service Docker Volume Driver
Loaded: loaded (/etc/systemd/system/azurefile-dockervolumedriver.service; enabled; vendor
Active: active (running) since Mon 2019-04-08 09:44:39 UTC; 7s ago
Docs: https://github.com/Azure/azurefile-dockervolumedriver/
Main PID: 19921 (azurefile-docke)
Tasks: 4
Memory: 1.0M
CPU: 3ms
CGroup: /system.slice/azurefile-dockervolumedriver.service
붴19921 /usr/bin/azurefile-dockervolumedriver
Apr 08 09:44:39 azuredockervm systemd[1]: Started Azure File Service Docker Volume Driver.
root@azuredockervm:~#
Azure File에 Docker Volume생성
root@azuredockervm:~# docker volume create -d azurefile --name myvol -o share=myvol myvol root@azuredockervm:~# docker volume ls DRIVER VOLUME NAME local 90ca61a3ab5b424f0592d8ea0f3f20ff5ab1bd9bb84da365ee99c5f633cc5819 local 454b4e2443b259c11fa11fd4404b86e54d324ad74448db93934c384d22e749b7 local ec08bef2a099f4e4b64b7f2e74d80fd34f5e286b65868e50aebfe3a8f2418a47 azurefile myvol root@azuredockervm:~# root@azuredockervm:~# root@azuredockervm:~#
Docker Volume을 사용하는 새 컨테이너 생성 및 샘플파일 생성
root@azuredockervm:~# docker run -it --name azurefile_con -v myvol:/data busybox Unable to find image 'busybox:latest' locally latest: Pulling from library/busybox fc1a6b909f82: Pull complete Digest: sha256:954e1f01e80ce09d0887ff6ea10b13a812cb01932a0781d6b0cc23f743a874fd Status: Downloaded newer image for busybox:latest / # cd /data/ /data # echo "Hello World!" >> azurefiledocker.txt /data #
Azure Portal에서 파일 확인


