Docker MariaDB Container ติดตั้งและสร้าง Container

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 โปรดติดตามตอนต่อไปครับ

อ้างอิง

Loading

Leave a Comment