ããŒã¿ããŒã¹ã®æ°žç¶å
ããæ°ã¥ããŠããªãå Žåãã³ã³ãããèµ·åãããã³ã«ãtodoãªã¹ãã空ã«ãªã£ãŠããŸãããªããããªãã®ã§ããããïŒãã®ããŒãã§ã¯ãã³ã³ãããã©ã®ããã«åäœããŠãããã詳ããèŠãŠãããŸãã
ã³ã³ããã®ãã¡ã€ã«ã·ã¹ãã
ã³ã³ãããå®è¡ããããšããã¡ã€ã«ã·ã¹ãã ãšããŠã€ã¡ãŒãžã®ããŸããŸãªã¬ã€ã€ãŒã䜿çšããŸããåã³ã³ããã«ã¯ããã¡ã€ã«ã®äœæãæŽæ°ãåé€ãã§ããç¬èªã®ãã¹ã¯ã©ããã¹ããŒã¹ããäžããããŸãããããã®å€æŽã¯ãåãã€ã¡ãŒãžã䜿çšããŠããä»ã®ã³ã³ããã§ã¯èŠãããŸããã
å®éã«ç¢ºèªãã
ããã確èªããããã«ã2ã€ã®ã³ã³ãããèµ·åããŸãã1ã€ã®ã³ã³ããã§ãã¡ã€ã«ãäœæãããã1ã€ã®ã³ã³ããã§ãã®ãã¡ã€ã«ãååšããã確èªããŸããçµæãšããŠã1ã€ã®ã³ã³ããã§äœæãããã¡ã€ã«ããå¥ã®ã³ã³ããã«ã¯ååšããªãããšãããããŸãã
-
Alpineã³ã³ãããèµ·åããã·ã§ã«ã«ã¢ã¯ã»ã¹ããŸãã
$ docker run -ti --name=mytest alpine
-
ã³ã³ããå ã§
greeting.txt
ãšããååã®ãã¡ã€ã«ãäœæãããã®äžã«hello
ãšããããã¹ããå ¥ããŸãã/ # echo "hello" > greeting.txt
-
ã³ã³ãããçµäºããŸãã
/ # exit
-
æ°ããAlpineã³ã³ãããèµ·åãã
cat
ã³ãã³ãã䜿çšããŠãã¡ã€ã«ãååšããªãããšã確èªããŸãã$ docker run alpine cat greeting.txt
æ°ããã³ã³ããã«ãã¡ã€ã«ãååšããªãããšã瀺ãã以äžã®ãããªåºåã衚瀺ãããã¯ãã§ãã
cat: can't open 'greeting.txt': No such file or directory
-
docker ps --all
ã³ãã³ãã䜿çšããŠã³ã³ããã®IDãååŸããdocker rm -f <container-id>
ã³ãã³ãã§ã³ã³ãããåé€ããŸãã
ã³ã³ããããªã¥ãŒã
åã®å®éšã§ç¢ºèªããããã«ãåã³ã³ããã¯èµ·åãããã³ã«ã€ã¡ãŒãžã®å®çŸ©ããéå§ãããŸããã³ã³ããã¯ãã¡ã€ã«ãäœæãæŽæ°ãåé€ã§ããŸãããã³ã³ãããåé€ãããšãããã®å€æŽã¯å€±ãããDockerã¯ãã¹ãŠã®å€æŽããã®ã³ã³ããã«éé¢ããŸããããªã¥ãŒã ã䜿ãã°ããããå€æŽããããšãã§ããŸãã
ããªã¥ãŒã â ã¯ãã³ã³ããå ã®ç¹å®ã®ãã¡ã€ã«ã·ã¹ãã ãã¹ããã¹ããã·ã³ã«æ¥ç¶ããæ©èœãæäŸããŸããã³ã³ããå ã®ãã£ã¬ã¯ããªãããŠã³ãããã°ããã®ãã£ã¬ã¯ããªå ã®å€æŽããã¹ããã·ã³ã«ãåæ ãããŸããã³ã³ãããåèµ·åããŠããåããã£ã¬ã¯ããªãããŠã³ãããã°ãåããã¡ã€ã«ã衚瀺ãããŸãã
ããªã¥ãŒã ã«ã¯äž»ã«2çš®é¡ãããŸããæçµçã«ã¯äž¡æ¹ã䜿çšããŸããããŸãã¯ããªã¥ãŒã ããŠã³ãããå§ããŸãã
todoããŒã¿ã®æ°žç¶å
ããã©ã«ãã§ã¯ãtodoã¢ããªã¯ã³ã³ããã®ãã¡ã€ã«ã·ã¹ãã å
ã® /etc/todos/todo.db
ã«SQLiteããŒã¿ããŒã¹ãšããŠããŒã¿ãä¿åããŸããSQLiteã«è©³ãããªãå Žåã§ãåé¡ãããŸãããSQLiteã¯ããã¹ãŠã®ããŒã¿ã1ã€ã®ãã¡ã€ã«ã«ä¿åãããªã¬ãŒã·ã§ãã«ããŒã¿ããŒã¹ã§ãã倧èŠæš¡ãªã¢ããªã±ãŒã·ã§ã³ã«ã¯æé©ã§ã¯ãããŸããããå°èŠæš¡ãªãã¢ã«ã¯é©ããŠããŸããåŸã§ããããå¥ã®ããŒã¿ããŒã¹ãšã³ãžã³ã«åãæ¿ããæ¹æ³ãåŠã³ãŸãã
ããŒã¿ããŒã¹ãåäžãã¡ã€ã«ã§ããããããã®ãã¡ã€ã«ããã¹ãã«æ°žç¶åãã次ã®ã³ã³ããã§å©çšã§ããããã«ããã°ãååã®ç¶ãããå®è¡ã§ããã¯ãã§ããããªã¥ãŒã ãäœæããŠããŒã¿ãä¿åããŠãããã£ã¬ã¯ããªã«ã¢ã¿ããïŒããŠã³ãïŒããããšã§ãããŒã¿ãæ°žç¶åã§ããŸããã³ã³ããã todo.db
ãã¡ã€ã«ã«æžã蟌ããšããã®ããŒã¿ã¯ãã¹ãäžã®ããªã¥ãŒã ã«æ°žç¶åãããŸãã
åè¿°ã®ããã«ãããªã¥ãŒã ããŠã³ãã䜿çšããŸããããªã¥ãŒã ããŠã³ãã¯ãäžéæãªããŒã¿ã®ãã±ããã®ãããªãã®ãšèããŠãã ãããDockerã¯ããªã¥ãŒã ãå®å šã«ç®¡çãããã£ã¹ã¯äžã®ã¹ãã¬ãŒãžå Žæãå«ããŠç®¡çããŸããèŠããŠããã¹ãã¯ãããªã¥ãŒã ã®ååã ãã§ãã
ããªã¥ãŒã ãäœæããã³ã³ãããèµ·åãã
CLIãŸãã¯Docker Desktopã®ã°ã©ãã£ã«ã«ã€ã³ã¿ãŒãã§ãŒã¹ã䜿çšããŠãããªã¥ãŒã ãäœæããã³ã³ãããèµ·åã§ããŸãã
CLI
docker volume create
ã³ãã³ãã䜿çšããŠããªã¥ãŒã ãäœæããŸãã
$ docker volume create todo-db
-
æ°žç¶åããªã¥ãŒã ã䜿çšããã«ãŸã å®è¡äžã®todoã¢ããªã³ã³ãããã
docker rm -f <id>
ã§åæ¢ããŠåé€ããŸãã -
--mount
ãªãã·ã§ã³ãè¿œå ããŠããªã¥ãŒã ããŠã³ããæå®ããtodoã¢ããªã³ã³ãããèµ·åããŸããããªã¥ãŒã ã«ååãä»ãããããã³ã³ããã®/etc/todos
ã«ããŠã³ãããŸãããã®ãã£ã¬ã¯ããªã«äœæããããã¹ãŠã®ãã¡ã€ã«ããã£ããã£ãããŸãã
$ docker run -dp 127.0.0.1:3000:3000 --mount type=volume,src=todo-db,target=/etc/todos getting-started
Git Bashã䜿çšããŠããå Žåããã®ã³ãã³ãã®æ§æãç°ãªããŸãã
$ docker run -dp 127.0.0.1:3000:3000 --mount type=volume,src=todo-db,target=//etc/todos getting-started
Git Bashã®æ§æã®éãã«ã€ããŠã®è©³çŽ°ã¯ãGit Bashã®äœ¿çšâ ãåç §ããŠãã ããã
ããŒã¿ãæ°žç¶åãããŠããããšã確èªãã
-
ã³ã³ãããèµ·åããããã¢ããªãéããŠãtodoãªã¹ãã«ããã€ãã®ã¢ã€ãã ãè¿œå ããŸãã
-
Docker DesktopãŸã㯠docker ps ã³ãã³ãã䜿ã£ãŠIDãååŸãã
docker rm -f <id>
ã³ãã³ãã䜿çšããŠtodoã¢ããªã³ã³ãããåæ¢ããŠåé€ããŸãã -
åã®æé ã䜿ã£ãŠæ°ããã³ã³ãããèµ·åããŸãã
-
ã¢ããªãéããšããªã¹ãã«ãŸã ã¢ã€ãã ãæ®ã£ãŠããã¯ãã§ãã
-
ãªã¹ãã確èªãçµããããã³ã³ãããåé€ããŠãã ããã
ããã§ããŒã¿ãæ°žç¶åããæ¹æ³ãåŠã³ãŸããã
ããªã¥ãŒã ã®è©³çŽ°ã確èªãã
ãããªã¥ãŒã ã䜿çšããŠãããšãã«Dockerã¯ããŒã¿ãã©ãã«ä¿åããŠããã®ãïŒããšããèãããŸããããã確èªããã«ã¯ãdocker volume inspect
ã³ãã³ãã䜿çšããŸãã
$ docker volume inspect todo-db
次ã®ãããªåºåã衚瀺ãããã¯ãã§ãïŒ
[
{
"CreatedAt": "2019-09-26T02:18:36Z",
"Driver": "local",
"Labels": {},
"Mountpoint": "/var/lib/docker/volumes/todo-db/_data",
"Name": "todo-db",
"Options": {},
"Scope": "local"
}
]
Mountpoint
ã¯ãã£ã¹ã¯äžã®å®éã®ããŒã¿ã®ä¿åå Žæã§ããã»ãšãã©ã®ãã·ã³ã§ã¯ããã®ãã£ã¬ã¯ããªã«ãã¹ãããã¢ã¯ã»ã¹ããã«ã¯rootã¢ã¯ã»ã¹ãå¿
èŠã§ãã
ãŸãšã
ãã®ã»ã¯ã·ã§ã³ã§ã¯ãã³ã³ããããŒã¿ãæ°žç¶åããæ¹æ³ãåŠã³ãŸããã
é¢é£æ å ±:
次ã®ã¹ããã
次ã¯ããã€ã³ãããŠã³ãã䜿çšããŠãã¢ããªãããå¹ççã«éçºããæ¹æ³ãåŠã³ãŸãã