DevOps - The Must Know Checklist : 1 - Docker 2 වන කොටස
DevOps - The Must Know Checklist : 1 - Docker 2 වන කොටස
අපි කලින් පාඩමෙන් ඉගෙන ගත්තෙ Docker හා සම්බන්ද මේ කමාන්ඩ්ස් ටික docker search
docker pull
docker images
docker images --no-trunc
docker rmi
docker run
docker run -it
docker run -it --name
docker run -it -p
docker ps
docker ps -a
docker start
docker stop
docker rm
docker pause
docker unpause
docker exec -it
docker ps -a --filter
docker kill
අපි අද ඉගෙන ගනිමු අපි දැන ගත යුතු තවත් Docker කමන්ඩ්ස් ටිකක් ප්රයෝගිකව.
අද පාඩමෙන් මම මේ කමන්ඩ්ස් ගැන විස්තර කරනව
docker top
docker commit
docker inspect
docker export
docker cp
මේ කමන්ඩ්ස් ටික ඉගෙන ගන්න කලින් අපි අලුතෙන් Docker container එකක් හදාගෙන ඉදිමු.
ට්රයි docker run -it --name ja2k17ja_ubuntu ubuntu bash
ට්රයි apt-get update -y && apt-get upgrade -y && apt-get install nginx htop net-tools -y
1) docker top
Docker container එකක් තුල මේ මොහොතේ රන් වෙන කමාන්ඩ්ස් මොනවද කියල අපිට් docker top කමාන්ඩ් එකෙන් දැනගන්න පුළුවන්.
තවද කොපමණ වෙලාවක සිට එම කමාන්ඩ්ස් රන් වෙනවද කියලත් අපිට බලාගන්න පුළුවන්.
ට්රයි docker start ja2k17ja_ubuntu
ට්රයි docker exec ja2k17ja_ubuntu service nginx start
2) docker commit
අපිට මෙම කමාන්ඩ් එක බාවිතා කරල අපේ ලග දැනට තියෙන Docker container එකකින් Docker image එකක් ඉතා පහසුවෙන් සාදාගන්න පුළුවන්. දැන් බලමු අයි අපිට current Docker container එකකින් image එකක් සාදාගන්න අවශ්ය ඇයි කියල.
ඔයාල දැක්ක මම ja2k17ja_ubuntu කියන container එක හදා ගත්තෙ Docker Hub එකෙන් download කරගතිපු ubuntu කියන image එකෙන්. ඊට පසුව මම ja2k17ja_ubuntu එකට nginx , htop , net-tools කියන packages ටිකකුත් installed කරා.
මගේ ja2k17ja_ubuntu එකෙන් Docker image එකක් සදා ගත්තොත් එම image එක තුල මම installed කරපු packages ටිකත් එකට ඇතුලත් කරගන්න පුළුවන්. එවිට මට නැවතත් එම packages ටික install කරන්න ඕන නැ.
docker commit බාවිතා කිරීමට පෙර පෙර අදාල Docker container එක stop කරගත යුතුයි.
ට්රයි docker stop ja2k17ja_ubuntu
ට්රයි docker ps -a
දැන් අපි docker images පාරක් දාල චෙක් කර ගනිමු.
ට්රයි docker images
අපි දැන් මේ හද ගතිපු ja2k17ja_ubuntu_nginx කියන image එකෙන් Docker container එකක් සාදා ගෙන තව කමාන්ඩ්ස් ටිකක් ට්රයි කරමු.
ට්රයි docker run -it -p 80:80 --name ja2k17ja_ubuntu_nginx ja2k17ja_ubuntu_nginx
3) docker inspect
අපිට docker inspect සබ් කමාන්ඩ් එක මගින් Docker container එකක් inspect කරන්න පුළුවන්. අපිට සැහෙන විස්තර ප්රමාණයක් මෙම කමාන්ඩ් එකෙන් ගන්න පුළුවන්. නමුත් output එක ටිකක් දිගයි. මම එක filter කරන විදියකුත් ඔයාලට පෙන්නල දෙන්නම්. ඔයාල මේ කමාන්ඩ් එක රන් නොවන Docker container එකකටත් දීල බලන්න. එක මම ඔයාලට දෙන home work එකක්. රන් සහ රන් නොවන output සංසන්දනය කරල බලන්න.
අපි දැන් රන් වෙන Docker container එකකට දීල බලමු. මුලින්ම docker start ja2k17ja_ubuntu_nginx කමාන්ඩ් එක දීල container එක start කරගනිමු.
දැන් ට්රයි docker inspect ja2k17ja_ubuntu_nginx
ට්රයි docker inspect -f '{{.NetworkSettings.IPAddress}}' ja2k17ja_ubuntu_nginx
අපිට මේ සබ් කමාන්ඩ් එක බාවිතා කරල Docker container එකේ file system එක container එකෙන් එලියට tar archive එකක් විදියට export කරගන්න පුළුවන්.
අපි උදාහරණයකින් මගින් තේරුම් ගන්න බලමු. මුලින්ම අපේ home ඩිරෙක්ටරිය තුල docker_file_systems කියල directory එකක් හදාගමු. අපි මේක ඇතුලට Docker containers වල file system ටික export කරමු.
ට්රයි mkdir ~/docker_file_systems
ට්රයි mkdir ~/docker_file_systems/ja2k17ja_ubuntu_nginx && sudo tar -xf ~/docker_file_systems/ja2k17ja_ubuntu_nginx_fs.tar -C ~/docker_file_systems/ja2k17ja_ubuntu_nginx
ට්රයි ls -l ~/docker_file_systems/ja2k17ja_ubuntu_nginx
අපිට මේ සබ් කමාන්ඩ් එකෙන් පුළුවන් Host server එක සහ Docker container එක අතර file හුවමාරු කරගන. මෙමගින් host server එකේ සිට Docker container එකටත්, Docker container එකේ සිට Host server එකටත් files copy කරන්න පුළුවන්.
දැන් අපි බලමු Docker container එකෙන් host ට කොපි කරල. මෙහි ja2k17ja_ubuntu_nginx කියන්නෙ Docker container එකේ NAMES එක කියල ඔයාල දන්නව.
ට්රයි docker cp ja2k17ja_ubuntu_nginx:/etc/nginx/nginx.conf ~/ja2k17ja_ubuntu_nginx-nginx.conf
ට්රයි ls -l ~/
ට්රයි docker cp ~/ja2k17ja_ubuntu_nginx-nginx.conf ja2k17ja_ubuntu_nginx:/etc/nginx/nginx.conf.back
ට්රයි docker exec -it ja2k17ja_ubuntu_nginx bash
දැන් ඔයාලට තියෙන්නෙ මම කියල දීපු දේවල් හොදින් අත්හදා බලන්න.
නැවතත් මෙවැනි පාඩමකින් හමුවෙමු.
ස්තුතියි.
DevOps - The Must Know Checklist : 1 - Docker 2 වන කොටස
අපි කලින් පාඩමෙන් ඉගෙන ගත්තෙ Docker හා සම්බන්ද මේ කමාන්ඩ්ස් ටික docker search
docker pull
docker images
docker images --no-trunc
docker rmi
docker run
docker run -it
docker run -it --name
docker run -it -p
docker ps
docker ps -a
docker start
docker stop
docker rm
docker pause
docker unpause
docker exec -it
docker ps -a --filter
docker kill
අපි අද ඉගෙන ගනිමු අපි දැන ගත යුතු තවත් Docker කමන්ඩ්ස් ටිකක් ප්රයෝගිකව.
අද පාඩමෙන් මම මේ කමන්ඩ්ස් ගැන විස්තර කරනව
docker top
docker commit
docker inspect
docker export
docker cp
මේ කමන්ඩ්ස් ටික ඉගෙන ගන්න කලින් අපි අලුතෙන් Docker container එකක් හදාගෙන ඉදිමු.
ට්රයි docker run -it --name ja2k17ja_ubuntu ubuntu bash
දැන් එකට මෙන්න මේ විදියට අපිට ඕන කරන දේවල් ටිකකුත් install කරගනිමු.nix@ja2k17ja-docker:~$ docker run -it --name ja2k17ja_ubuntu ubuntu bash
root@613d5ff78051:/#
ට්රයි apt-get update -y && apt-get upgrade -y && apt-get install nginx htop net-tools -y
ට්රයි exitroot@613d5ff78051:/# apt-get update -y && apt-get upgrade -y && apt-get install nginx htop net-tools -y
Get:1 http://security.ubuntu.com/ubuntu xenial-security InRelease [102 kB]
Get:2 http://archive.ubuntu.com/ubuntu xenial InRelease [247 kB]
Get:3 http://security.ubuntu.com/ubuntu xenial-security/universe Sources [39.9 kB]
Get:4 http://archive.ubuntu.com/ubuntu xenial-updates InRelease [102 kB]
----
----
----
Processing triggers for libc-bin (2.23-0ubuntu9) ...
Processing triggers for sgml-base (1.26+nmu4ubuntu1) ...
Processing triggers for systemd (229-4ubuntu17) ...
root@613d5ff78051:/#
ට්රයි docker ps -aroot@613d5ff78051:/# exit
exit
nix@ja2k17ja-docker:~$
දැන් අපිට ja2k17ja_ubuntu කියල Docker container එකක් තියෙනව.nix@ja2k17ja-docker:~$ docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
613d5ff78051 ubuntu "bash" About a minute ago Exited (0) 8 seconds ago ja2k17ja_ubuntu
nix@ja2k17ja-docker:~$
1) docker top
Docker container එකක් තුල මේ මොහොතේ රන් වෙන කමාන්ඩ්ස් මොනවද කියල අපිට් docker top කමාන්ඩ් එකෙන් දැනගන්න පුළුවන්.
තවද කොපමණ වෙලාවක සිට එම කමාන්ඩ්ස් රන් වෙනවද කියලත් අපිට බලාගන්න පුළුවන්.
ට්රයි docker start ja2k17ja_ubuntu
ට්රයි docker top ja2k17ja_ubuntunix@ja2k17ja-docker:~$ docker start ja2k17ja_ubuntu
ja2k17ja_ubuntu
nix@ja2k17ja-docker:~$
අපි දැන් Docker container එක ඇතුලෙ තියෙන nginx service එක start කරලා ආපසු docker top ja2k17ja_ubuntu දීල බලමු.nix@ja2k17ja-docker:~$ docker top ja2k17ja_ubuntu
UID PID PPID C STIME TTY TIME CMD
root 13170 13154 0 01:33 pts/0 00:00:00 bash
nix@ja2k17ja-docker:~$
ට්රයි docker exec ja2k17ja_ubuntu service nginx start
ට්රයි docker top ja2k17ja_ubuntunix@ja2k17ja-docker:~$ docker exec ja2k17ja_ubuntu service nginx start
* Starting nginx nginx
...done.
nix@ja2k17ja-docker:~$
දැන් ඔයාලට පැහැදිළියි කමාන්ඩ් එකෙන් වෙනදේ.nix@ja2k17ja-docker:~$ docker top ja2k17ja_ubuntu
UID PID PPID C STIME TTY TIME CMD
root 13170 13154 0 01:33 pts/0 00:00:00 bash
root 13289 1 0 01:37 ? 00:00:00 nginx: master process /usr/sbin/nginx
www-data 13290 13289 0 01:37 ? 00:00:00 nginx: worker process
www-data 13291 13289 0 01:37 ? 00:00:00 nginx: worker process
nix@ja2k17ja-docker:~$
2) docker commit
අපිට මෙම කමාන්ඩ් එක බාවිතා කරල අපේ ලග දැනට තියෙන Docker container එකකින් Docker image එකක් ඉතා පහසුවෙන් සාදාගන්න පුළුවන්. දැන් බලමු අයි අපිට current Docker container එකකින් image එකක් සාදාගන්න අවශ්ය ඇයි කියල.
ඔයාල දැක්ක මම ja2k17ja_ubuntu කියන container එක හදා ගත්තෙ Docker Hub එකෙන් download කරගතිපු ubuntu කියන image එකෙන්. ඊට පසුව මම ja2k17ja_ubuntu එකට nginx , htop , net-tools කියන packages ටිකකුත් installed කරා.
මගේ ja2k17ja_ubuntu එකෙන් Docker image එකක් සදා ගත්තොත් එම image එක තුල මම installed කරපු packages ටිකත් එකට ඇතුලත් කරගන්න පුළුවන්. එවිට මට නැවතත් එම packages ටික install කරන්න ඕන නැ.
docker commit බාවිතා කිරීමට පෙර පෙර අදාල Docker container එක stop කරගත යුතුයි.
ට්රයි docker stop ja2k17ja_ubuntu
වැඩේ කරන්න කලින් docker ps -a පාරක් දාල බලමු.nix@ja2k17ja-docker:~$ docker stop ja2k17ja_ubuntu
ja2k17ja_ubuntu
nix@ja2k17ja-docker:~$
ට්රයි docker ps -a
ට්රයි docker commit ja2k17ja_ubuntu ja2k17ja_ubuntu_nginxnix@ja2k17ja-docker:~$ docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
613d5ff78051 ubuntu "bash" 17 minutes ago Exited (0) 6 seconds ago ja2k17ja_ubuntu
nix@ja2k17ja-docker:~$
nix@ja2k17ja-docker:~$ docker commit ja2k17ja_ubuntu ja2k17ja_ubuntu_nginx
sha256:937a76550fbab260767093ff8b2a09a3d0a69a0df5c4b690eb952c561d8f9859
nix@ja2k17ja-docker:~$
දැන් අපි docker images පාරක් දාල චෙක් කර ගනිමු.
ට්රයි docker images
දැක්ක නේද දැන් අපිට ja2k17ja_ubuntu_nginx කියල අලුතින් Docker image එකක් තියෙනව. මේimage එක ඇතුලෙ අපි installed කරපු packages ටිකත් ඇතුලත් වෙලා තියෙනව.nix@ja2k17ja-docker:~$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
ja2k17ja_ubuntu_nginx latest 937a76550fba 2 minutes ago 220MB
ubuntu latest d355ed3537e9 11 days ago 119MB
nix@ja2k17ja-docker:~$
අපි දැන් මේ හද ගතිපු ja2k17ja_ubuntu_nginx කියන image එකෙන් Docker container එකක් සාදා ගෙන තව කමාන්ඩ්ස් ටිකක් ට්රයි කරමු.
ට්රයි docker run -it -p 80:80 --name ja2k17ja_ubuntu_nginx ja2k17ja_ubuntu_nginx
ට්රයි docker ps -anix@ja2k17ja-docker:~$ docker run -it -p 80:80 --name ja2k17ja_ubuntu_nginx ja2k17ja_ubuntu_nginx
root@9e2f5b028887:/# exit
exit
nix@ja2k17ja-docker:~$
nix@ja2k17ja-docker:~$ docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
9e2f5b028887 ja2k17ja_ubuntu_nginx "bash" 3 minutes ago Exited (0) 2 seconds ago ja2k17ja_ubuntu_nginx
613d5ff78051 ubuntu "bash" About an hour ago Exited (0) About an hour ago ja2k17ja_ubuntu
nix@ja2k17ja-docker:~$
3) docker inspect
අපිට docker inspect සබ් කමාන්ඩ් එක මගින් Docker container එකක් inspect කරන්න පුළුවන්. අපිට සැහෙන විස්තර ප්රමාණයක් මෙම කමාන්ඩ් එකෙන් ගන්න පුළුවන්. නමුත් output එක ටිකක් දිගයි. මම එක filter කරන විදියකුත් ඔයාලට පෙන්නල දෙන්නම්. ඔයාල මේ කමාන්ඩ් එක රන් නොවන Docker container එකකටත් දීල බලන්න. එක මම ඔයාලට දෙන home work එකක්. රන් සහ රන් නොවන output සංසන්දනය කරල බලන්න.
අපි දැන් රන් වෙන Docker container එකකට දීල බලමු. මුලින්ම docker start ja2k17ja_ubuntu_nginx කමාන්ඩ් එක දීල container එක start කරගනිමු.
දැන් ට්රයි docker inspect ja2k17ja_ubuntu_nginx
දැන් අපි filter කරන විදිය බලමු.nix@ja2k17ja-docker:~$ docker inspect ja2k17ja_ubuntu_nginx
[
{
"Id": "9e2f5b028887743e0f8f6db4e3e9c75d7a7769505b59d1264370e3a06bb4ab05",
"Created": "2017-07-02T02:29:39.414017444Z",
"Path": "bash",
"Args": [],
"State": {
"Status": "running",
"Running": true,
"Paused": false,
"Restarting": false,
"OOMKilled": false,
"Dead": false,
"Pid": 14572,
"ExitCode": 0,
"Error": "",
"StartedAt": "2017-07-02T02:41:35.184780297Z",
"FinishedAt": "2017-07-02T02:34:06.78363607Z"
},
"Image": "sha256:937a76550fbab260767093ff8b2a09a3d0a69a0df5c4b690eb952c561d8f9859",
"ResolvConfPath": "/var/lib/docker/containers/9e2f5b028887743e0f8f6db4e3e9c75d7a7769505b59d1264370e3a06bb4ab05/resolv.conf",
"HostnamePath": "/var/lib/docker/containers/9e2f5b028887743e0f8f6db4e3e9c75d7a7769505b59d1264370e3a06bb4ab05/hostname",
"HostsPath": "/var/lib/docker/containers/9e2f5b028887743e0f8f6db4e3e9c75d7a7769505b59d1264370e3a06bb4ab05/hosts",
"LogPath": "/var/lib/docker/containers/9e2f5b028887743e0f8f6db4e3e9c75d7a7769505b59d1264370e3a06bb4ab05/9e2f5b028887743e0f8f6db4e3e9c75d7a7769505b59d1264370e3a06bb4ab05-json.log",
"Name": "/ja2k17ja_ubuntu_nginx",
"RestartCount": 0,
"Driver": "aufs",
"MountLabel": "",
"ProcessLabel": "",
"AppArmorProfile": "docker-default",
"ExecIDs": null,
"HostConfig": {
"Binds": null,
"ContainerIDFile": "",
"LogConfig": {
"Type": "json-file",
"Config": {}
},
"NetworkMode": "default",
"PortBindings": {
"80/tcp": [
{
"HostIp": "",
"HostPort": "80"
}
]
},
"RestartPolicy": {
"Name": "no",
"MaximumRetryCount": 0
},
"AutoRemove": false,
"VolumeDriver": "",
"VolumesFrom": null,
"CapAdd": null,
"CapDrop": null,
"Dns": [],
"DnsOptions": [],
"DnsSearch": [],
"ExtraHosts": null,
"GroupAdd": null,
"IpcMode": "",
"Cgroup": "",
"Links": null,
"OomScoreAdj": 0,
"PidMode": "",
"Privileged": false,
"PublishAllPorts": false,
"ReadonlyRootfs": false,
"SecurityOpt": null,
"UTSMode": "",
"UsernsMode": "",
"ShmSize": 67108864,
"Runtime": "runc",
"ConsoleSize": [
0,
0
],
---
---
---
---
"NetworkSettings": {
"Bridge": "",
"SandboxID": "b9e5c79cc33f1b73edb031f8ceef5baafca563f1520b20f1a08431dfdd59cd41",
"HairpinMode": false,
"LinkLocalIPv6Address": "",
"LinkLocalIPv6PrefixLen": 0,
"Ports": {
"80/tcp": [
{
"HostIp": "0.0.0.0",
"HostPort": "80"
}
]
},
"SandboxKey": "/var/run/docker/netns/b9e5c79cc33f",
"SecondaryIPAddresses": null,
"SecondaryIPv6Addresses": null,
"EndpointID": "c8999373eccf35a027a8a2728b1fb482d3a94bd864544958e608083c694e3363",
"Gateway": "172.17.0.1",
"GlobalIPv6Address": "",
"GlobalIPv6PrefixLen": 0,
"IPAddress": "172.17.0.2",
"IPPrefixLen": 16,
"IPv6Gateway": "",
"MacAddress": "02:42:ac:11:00:02",
"Networks": {
"bridge": {
"IPAMConfig": null,
"Links": null,
"Aliases": null,
"NetworkID": "c4eac1ceeb2a9fd7d73a59e6d2b4ec7272cadb01887a6a4277a5bdc0d0a9783b",
"EndpointID": "c8999373eccf35a027a8a2728b1fb482d3a94bd864544958e608083c694e3363",
"Gateway": "172.17.0.1",
"IPAddress": "172.17.0.2",
"IPPrefixLen": 16,
"IPv6Gateway": "",
"GlobalIPv6Address": "",
"GlobalIPv6PrefixLen": 0,
"MacAddress": "02:42:ac:11:00:02",
"DriverOpts": null
}
}
}
}
]
nix@ja2k17ja-docker:~$
ට්රයි docker inspect -f '{{.NetworkSettings.IPAddress}}' ja2k17ja_ubuntu_nginx
4) docker exportnix@ja2k17ja-docker:~$ docker inspect -f '{{.NetworkSettings.IPAddress}}' ja2k17ja_ubuntu_nginx
172.17.0.2
nix@ja2k17ja-docker:~$
අපිට මේ සබ් කමාන්ඩ් එක බාවිතා කරල Docker container එකේ file system එක container එකෙන් එලියට tar archive එකක් විදියට export කරගන්න පුළුවන්.
අපි උදාහරණයකින් මගින් තේරුම් ගන්න බලමු. මුලින්ම අපේ home ඩිරෙක්ටරිය තුල docker_file_systems කියල directory එකක් හදාගමු. අපි මේක ඇතුලට Docker containers වල file system ටික export කරමු.
ට්රයි mkdir ~/docker_file_systems
ට්රයි docker export ja2k17ja_ubuntu_nginx > ~/docker_file_systems/ja2k17ja_ubuntu_nginx_fs.tarnix@ja2k17ja-docker:~$ mkdir ~/docker_file_systems
nix@ja2k17ja-docker:~$
ට්රයි ls -hl ~/docker_file_systemsnix@ja2k17ja-docker:~$ docker export ja2k17ja_ubuntu_nginx > ~/docker_file_systems/ja2k17ja_ubuntu_nginx_fs.tar
nix@ja2k17ja-docker:~$
අපිට අවශ්ය නම් මේ tar archive එක extract කරල බලන්න පුළුවන්. අපි ඒ විදියටත් කරලා බලමු.nix@ja2k17ja-docker:~$ ls -hl ~/docker_file_systems
total 178M
-rw-rw-r-- 1 nix nix 178M Jul 2 03:35 ja2k17ja_ubuntu_nginx_fs.tar
nix@ja2k17ja-docker:~$
ට්රයි mkdir ~/docker_file_systems/ja2k17ja_ubuntu_nginx && sudo tar -xf ~/docker_file_systems/ja2k17ja_ubuntu_nginx_fs.tar -C ~/docker_file_systems/ja2k17ja_ubuntu_nginx
අපිට මේ විදියට extract කරට කරාට පසුව ja2k17ja_ubuntu_nginx එක ඇතුලෙ තියෙන දේවල් බලන්න පුළුවන්. මේක හරියට අපේ Ubuntu file system එක වගේමයි.nix@ja2k17ja-docker:~$ mkdir ~/docker_file_systems/ja2k17ja_ubuntu_nginx && sudo tar -xf ~/docker_file_systems/ja2k17ja_ubuntu_nginx_fs.tar -C ~/docker_file_systems/ja2k17ja_ubuntu_nginx
nix@ja2k17ja-docker:~$
ට්රයි ls -l ~/docker_file_systems/ja2k17ja_ubuntu_nginx
5) docker cpnix@ja2k17ja-docker:~$ ls -l ~/docker_file_systems/ja2k17ja_ubuntu_nginx
total 76
drwxr-xr-x 2 root root 4096 Jul 2 01:26 bin
drwxr-xr-x 2 root root 4096 Apr 12 2016 boot
drwxr-xr-x 4 root root 4096 Jul 2 02:29 dev
drwxr-xr-x 47 root root 4096 Jul 2 02:29 etc
drwxr-xr-x 2 root root 4096 Apr 12 2016 home
drwxr-xr-x 8 root root 4096 Jul 2 01:26 lib
drwxr-xr-x 2 root root 4096 Jun 19 20:23 lib64
drwxr-xr-x 2 root root 4096 Jun 19 20:23 media
drwxr-xr-x 2 root root 4096 Jun 19 20:23 mnt
drwxr-xr-x 2 root root 4096 Jun 19 20:23 opt
drwxr-xr-x 2 root root 4096 Apr 12 2016 proc
drwx------ 3 root root 4096 Jul 2 03:00 root
drwxr-xr-x 5 root root 4096 Jul 2 01:26 run
drwxr-xr-x 2 root root 4096 Jul 2 01:26 sbin
drwxr-xr-x 2 root root 4096 Jun 19 20:23 srv
drwxr-xr-x 2 root root 4096 Feb 5 2016 sys
drwxrwxrwt 2 root root 4096 Jul 2 01:26 tmp
drwxr-xr-x 10 root root 4096 Jul 2 01:26 usr
drwxr-xr-x 12 root root 4096 Jul 2 01:26 var
nix@ja2k17ja-docker:~$
අපිට මේ සබ් කමාන්ඩ් එකෙන් පුළුවන් Host server එක සහ Docker container එක අතර file හුවමාරු කරගන. මෙමගින් host server එකේ සිට Docker container එකටත්, Docker container එකේ සිට Host server එකටත් files copy කරන්න පුළුවන්.
දැන් අපි බලමු Docker container එකෙන් host ට කොපි කරල. මෙහි ja2k17ja_ubuntu_nginx කියන්නෙ Docker container එකේ NAMES එක කියල ඔයාල දන්නව.
ට්රයි docker cp ja2k17ja_ubuntu_nginx:/etc/nginx/nginx.conf ~/ja2k17ja_ubuntu_nginx-nginx.conf
nix@ja2k17ja-docker:~$ docker cp ja2k17ja_ubuntu_nginx:/etc/nginx/nginx.conf ~/ja2k17ja_ubuntu_nginx-nginx.conf
nix@ja2k17ja-docker:~$
ට්රයි ls -l ~/
nix@ja2k17ja-docker:~$ ls -l ~/
total 8
drwxrwxr-x 3 nix nix 4096 Jul 2 03:54 docker_file_systems
-rw-r--r-- 1 nix nix 1462 Feb 11 21:00 ja2k17ja_ubuntu_nginx-nginx.conf
nix@ja2k17ja-docker:~$
ට්රයි docker cp ~/ja2k17ja_ubuntu_nginx-nginx.conf ja2k17ja_ubuntu_nginx:/etc/nginx/nginx.conf.back
nix@ja2k17ja-docker:~$ docker cp ~/ja2k17ja_ubuntu_nginx-nginx.conf ja2k17ja_ubuntu_nginx:/etc/nginx/nginx.conf.back
nix@ja2k17ja-docker:~$
ට්රයි docker exec -it ja2k17ja_ubuntu_nginx bash
ට්රයි ls -l /etc/nginxnix@ja2k17ja-docker:~$ docker exec -it ja2k17ja_ubuntu_nginx bash
root@9e2f5b028887:/#
root@9e2f5b028887:/# ls -l /etc/nginx
total 60
drwxr-xr-x 2 root root 4096 Mar 22 11:12 conf.d
-rw-r--r-- 1 root root 1077 Feb 11 21:00 fastcgi.conf
-rw-r--r-- 1 root root 1007 Feb 11 21:00 fastcgi_params
-rw-r--r-- 1 root root 2837 Feb 11 21:00 koi-utf
-rw-r--r-- 1 root root 2223 Feb 11 21:00 koi-win
-rw-r--r-- 1 root root 3957 Feb 11 21:00 mime.types
-rw-r--r-- 1 root root 1462 Feb 11 21:00 nginx.conf
-rw-r--r-- 1 1001 1002 1462 Feb 11 21:00 nginx.conf.back
-rw-r--r-- 1 root root 180 Feb 11 21:00 proxy_params
-rw-r--r-- 1 root root 636 Feb 11 21:00 scgi_params
drwxr-xr-x 2 root root 4096 Jul 2 01:26 sites-available
drwxr-xr-x 2 root root 4096 Jul 2 01:26 sites-enabled
drwxr-xr-x 2 root root 4096 Jul 2 01:26 snippets
-rw-r--r-- 1 root root 664 Feb 11 21:00 uwsgi_params
-rw-r--r-- 1 root root 3071 Feb 11 21:00 win-utf
root@9e2f5b028887:/#
දැන් ඔයාලට තියෙන්නෙ මම කියල දීපු දේවල් හොදින් අත්හදා බලන්න.
නැවතත් මෙවැනි පාඩමකින් හමුවෙමු.
ස්තුතියි.
Last edited:

