Docker MariaDB Container ติดตั้งและสร้าง Container
อย่างที่บอกไปในตอนก่อนว่าเราสามารถค้นหา image ด้วยคำสั่ง doker search หรือเข้าไปค้นหาที่เว็บ https://hub.docker.com/ พอเราค้นเจอ image ที่ต้องการก็สามารถดาวน์โหลดได้ทันที โดยใช้คำสั่ง docker pull
ดาวน์โหลด image
[root@docker-test ~]# docker pull mariadb:10.1 10.1: Pulling from library/mariadb 386a066cd84a: Pull complete 827c8d62b332: Pull complete de135f87677c: Pull complete 05822f26ca6e: Pull complete ad65f56a251e: Pull complete d71752ae05f3: Downloading 87cb39e409d0: Downloading 8e300615ba09: Downloading 411bb8b40c58: Downloading [==> ] 3.243 MB/71.99 MB f38e00663fa6: Download complete 7b8e0ed6d4af: Download complete 9a599d94dc41: Download complete
ดาวน์โหลดเสร็จก็เป็นแบบนี้
[root@docker-test ~]# docker pull mariadb:10.1 10.1: Pulling from library/mariadb 386a066cd84a: Already exists 827c8d62b332: Pull complete de135f87677c: Pull complete 05822f26ca6e: Pull complete ad65f56a251e: Pull complete d71752ae05f3: Pull complete 87cb39e409d0: Pull complete 8e300615ba09: Pull complete 411bb8b40c58: Pull complete f38e00663fa6: Pull complete 7b8e0ed6d4af: Pull complete 9a599d94dc41: Pull complete Digest: sha256:3a2d01b31bc2a1b47b6bf9905bf017eac962d74a532d43ba4f12134698a32339 Status: Downloaded newer image for mariadb:10.1
ดูซิว่ามี image อะไรบ้าง
[root@docker-test ~]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE mariadb 10.1 66498efd6bd8 2 weeks ago 389.9 MB debian latest 73e72bf822ca 2 weeks ago 123 MB hello-world latest c54a2cc56cbb 4 months ago 1.848 kB
ถ้าหากว่าอยากได้ MariaDB 5.5 มาติดตั้งด้วย ก็ไม่มีปัญครับ นี่คือข้อดีอีกอย่างของ Docker
[root@docker-test ~]# docker pull mariadb:5.5 5.5: Pulling from library/mariadb c952bb7239f0: Pull complete 8c770840981e: Pull complete 566b9b89ae5f: Pull complete ab998c5abe77: Pull complete 47fcf5f1b7ce: Pull complete cccca0ee7a1b: Pull complete f4c026c79d95: Pull complete a8765c07e57b: Pull complete 3d1c8c68764a: Pull complete 93fa2d5d15cd: Pull complete 6a508cfd9f12: Pull complete 439cb44d624a: Pull complete Digest: sha256:7cf460256450d74d5bacea87b79d8c4ae4b3cc9bda2bc2b4a5bb21d8a98927d8 Status: Downloaded newer image for mariadb:5.5
ดูว่ามี image อะไรบ้าง
[root@docker-test ~]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE mariadb 5.5 74d6cee58c6a 3 days ago 276.6 MB mariadb 10.1 66498efd6bd8 3 weeks ago 389.9 MB debian latest 73e72bf822ca 3 weeks ago 123 MB hello-world latest c54a2cc56cbb 5 months ago 1.848 kB
เห็นมั๊ยครับว่าเราสามารถติดตั้ง MariaDB ทั้งเวอร์ชัน 10.1 และ 5.5 ไว้บนเครื่องเดียวกันได้
สร้าง Container
หลังจากที่เราดาวน์โหลด image มาแล้วนั้นเราก็ต้องสร้าง container ขึ้นมา ตามความเข้าใจของผมคือการรัน image ขึ้นมาภายใต้ option ต่างๆ นั่นเอง เช่น ผมจะสร้าง Container ของ MariaDB ของ 10.1
[root@docker-test ~]# docker run --name mariadb01-10.1 -e MYSQL_ROOT_PASSWORD=123456 -d mariadb:10.1 58fadbd9e36eba323c35ef84329ff653c43bfcffda43d817810790a5960eb63a
จากคำสั่ง มีความหมายว่า สร้าง container ชื่อ mariadb01-10.1 โดยมีรหัสผ่านการเข้าใช้งาน MariaDB คือ 123456 โดยสร้างจาก image MariaDB:10.1
ทดลองสร้าง container ของ MariaDB 5.5
[root@docker-test data]# docker run --name mariadb01-5.5 -e MYSQL_ROOT_PASSWORD=123456 -d mariadb:5.5 e04789f3cfa802668258e01f60b8690338f71ef4712e4d46fa514d34eabefc5a
จากคำสั่ง มีความหมายว่า สร้าง container ชื่อ mariadb01-5.5 โดยมีรหัสผ่านการเข้าใช้งาน MariaDB คือ 123456 โดยสร้างจาก image MariaDB:5.5
สร้าง continer มาแล้วจะดูยังไงล่ะว่ามี container อะไรรันอยู่บ้าง
[root@docker-test data]# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES e04789f3cfa8 mariadb:5.5 "docker-entrypoint.sh" 2 minutes ago Up 2 minutes 3306/tcp mariadb01-5.5 58fadbd9e36e mariadb:10.1 "docker-entrypoint.sh" 6 minutes ago Up 5 minutes 3306/tcp mariadb01-10.1
ใช้งาน container
ณ ตอนนี้แสดงว่า container ของเรากำลังรันอยู่ หากเราต้องการหยุดการทำงานของ container ที่เราสร้างมา
[root@docker-test data]# docker stop mariadb01-5.5 mariadb01-5.5 [root@docker-test data]# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 58fadbd9e36e mariadb:10.1 "docker-entrypoint.sh" 10 minutes ago Up 10 minutes 3306/tcp mariadb01-10.1 [root@docker-test data]#
จะเห็นว่าเมื่อเรา stop container mariadb01-5.5 เมื่อสั่ง docker ps ก็จะมีแต่ container mariadb01-10.1
คำสั่งอื่นๆ
- docker start ชื่อ container
- docker stop ชื่อ container
- docker restart ชื่อ container
- docker kill ชื่อ container
แล้วถ้าเกิดว่าเราได้ stop container ไปหมด แล้วจำชื่อ container ที่เราสร้างขึ้นมาไม่ได้ ต้องสั่งยังไง
[root@docker-test data]# docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES e04789f3cfa8 mariadb:5.5 "docker-entrypoint.sh" 15 minutes ago Exited (0) 8 minutes ago mariadb01-5.5 58fadbd9e36e mariadb:10.1 "docker-entrypoint.sh" 19 minutes ago Exited (0) About a minute ago mariadb01-10.1 91aba2519f8c debian "nsenter -t 1 -m -u -" 9 days ago Exited (0) 9 days ago high_dijkstra 05dac5d3cd72 hello-world "/hello" 9 days ago Exited (0) 9 days ago cocky_tesla
สร้าง container ขึ้นมาแล้ว ลองเล่นดูหน่อย
[root@docker-test data]# docker exec -it mariadb01-10.1 bash root@58fadbd9e36e:/# mysql ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO) root@58fadbd9e36e:/# mysql -u root -p123456 Welcome to the MariaDB monitor. Commands end with ; or \g. Your MariaDB connection id is 3 Server version: 10.1.19-MariaDB-1~jessie mariadb.org binary distribution Copyright (c) 2000, 2016, Oracle, MariaDB Corporation Ab and others. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. MariaDB [(none)]>
ลบ container
ถ้าสร้าง container ขึ้นมาแล้ว อยากจะลบทิ้งก็ใช้คำสั่ง docker rm ตามด้วยชื่อ container ที่ต้องการลบ
[root@docker-test data]# docker rm -v mariadb01-10.1
*** docker rm -v จะลบข้อมูลที่ mariadb สร้างขึ้นมาด้วย
สำหรับเรื่อง MaiaDB container ตอนนี้ขอจบแค่นี้ก่อน จะเห็นว่าเป็นการสร้าง MariaDB container ที่ไม่มี my.cnf ซึ่งในการใช้งานจริงๆ คงไม่เหมาะสม ในตอนต่อไปจะมาพูดถึงการ สร้าง MariaDB container ที่เรียกใช้ my.cnf และระบุ ตำแหน่งที่เก็บข้อมูลของ MariaDB โปรดติดตามตอนต่อไปครับ
อ้างอิง
- https://hub.docker.com/_/mariadb/
- https://mariadb.com/kb/en/mariadb/installing-and-using-mariadb-via-docker/