Docker: Hướng dẫn đặt tên và hostname cho Docker container

Docker: Hướng dẫn đặt tên và hostname cho Docker container | Khi bạn tạo một Docker container, thì chương trình Docker sẽ tự động gán một giá trị ID ngẫu nhiên (universally unique identifier – UUID) đại diện cho container vừa tạo. Việc này là cần thiết để tránh việc trùng lặp các thông tin lưu trữ về các container đang có cũng như thuận tiện cho việc tự động hoá tránh tạo các Docker container.

đặt tên và hostname cho docker container

Để giúp người sử dụng Docker có thể quản lý các container dễ hơn, thì Docker đã tạo ra một giá trị tên ngẫu nhiên bằng 2 từ và nối nhau bằng dấu ‘‘, mà con người có thể hiểu được (‘NAMES‘) để gán đại diện tên container vừa mới tạo. Lệnh dưới đây sẽ liệt kê ra các container đang tồn tại, bạn để ý ở cột ‘NAMES‘ sẽ thấy những cái tên ngẫu nhiên được sản sinh bởi Docker gán cho các container khi vừa tạo ra.

# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
d37def35a9fc centos "/bin/bash" 3 days ago Exited (0) 2 days ago first_container
a604a57ed77d ubuntu "/bin/bash" 3 days ago Exited (127) 3 days ago goofy_minsky
ff8005ddd9c9 ubuntu "/bin/bash" 3 days ago Exited (0) 3 days ago cocky_newton
492f7356b5b7 ubuntu "/bin/bash" 3 days ago Exited (137) 3 days ago cranky_hypatia
4d0550d9b65a ubuntu "/bin/bash" 3 days ago Up 24 hours stupefied_aryabhata

Nhưng mà với các quản trị viên chúng ta thì một cái tên ngẫu nhiên như vậy thì không thể nào tiện cho việc quản lý container bằng tên được. Vì vậy bài viết này sẽ hướng dẫn bạn việc cấu hình tên cho ‘container’ và gán hostname cho ‘container’ luôn.

Có thể bạn quan tâm chủ đề khác
Sự khác biệt giữa ‘docker run’ và ‘docker ‘exec’
Cài đặt Docker trên CentOS 7
Video Khoá Học Docker Cơ bản
Ebook Docker in Practice (PDF)

1. Đặt tên Docker container khi tạo/chạy

Bằng cách sử dụng option ‘–name=ten_container‘ khi dùng với lệnh ‘docker run‘ , thì container sau khi tạo ra và chạy thì ngoài việc có giá trị UUID riêng biệt thì còn có một cái tên quản lý theo mong muốn của bạn ở cột ‘NAMES’.

Ví dụ 1:
– Khi tạo một container docker mà không gán tên.

# docker run -it ubuntu /bin/bash
root@f5cd2a44664d:/#

# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
f5cd2a44664d ubuntu "/bin/bash" 54 seconds ago Exited (0) 43 seconds ago boring_ride

– Bạn sẽ thấy giá trị tên của container vừa mới tạo với UUID ‘f5cd2a44664d‘ có tên là : boring_ride . Một cái tên ngẫu nhiên và rất khó quản lý container theo cái tên này phải không nào.

Ví dụ 2:
– Khi tạo một container docker kèm theo việc gán tên.

# docker run --name=cuongquach_ubuntu_1 -it ubuntu /bin/bash
root@4635e4a7a5e6:/# exit
exit

# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
4635e4a7a5e6 ubuntu "/bin/bash" 5 seconds ago Exited (0) 2 seconds ago cuongquach_ubuntu_1

– Lúc này bạn sẽ thấy Docker container mới ‘4635e4a7a5e6‘ đã có tên theo ta mong muốn ‘cuongquach_ubuntu_1‘ . Cực kì tiện lợi để quản lý sau container theo tên này khi bạn đã biết cách gán tên cho nó rồi phải không nào.

2. Gán hostname cho một Docker container

Khi mà bạn mở terminal bash session trong một container, bạn sẽ thấy container đó mặc định sẽ sử dụng giá trị CONTAINER ID để làm hostname. Thậm chí thông tin CONTAINER ID này cũng sẽ xuất hiện trong log container, làm khó cho việc debug hệ thống nếu sự cố phát sinh.

# docker start f5cd2a44664d
f5cd2a44664d

# docker exec -it f5cd2a44664d /bin/bash
root@f5cd2a44664d:/# hostname
f5cd2a44664d

Vậy giờ ta muốn gán thông tin hostname khi sử dụng trong Docker container thì phải làm như thế nào ? Thật đơn giản với option ‘–hostname=ten_hostname‘ khi tạo và chạy container từ image với lệnh ‘docker run’. Giá trị lấy từ option ‘–hostname‘ sẽ được cấu hình trong file ‘/etc/hostname‘ và file ‘/etc/hosts‘ bên trong container của bạn.

# docker run --hostname=cuongquach_ubuntu_2 --name=cuongquach_ubuntu_2 -it ubuntu /bin/bash
root@cuongquach_ubuntu_2:/# hostname
cuongquach_ubuntu_2

root@cuongquach_ubuntu_2:/# cat /etc/hosts
127.0.0.1 localhost
::1 localhost ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
172.17.0.6 cuongquach_ubuntu_2

root@cuongquach_ubuntu_2:/# cat /etc/hostname
cuongquach_ubuntu_2

Tổng kết

Vậy là với 2 option ‘–name‘ và ‘–hostname‘, bạn đã biết cách để cấu hình tên cho một Docker Container và cấu hình hostname sử dụng trong container đó rồi phải không nào. Giờ thì bạn chỉ cần thực hành thôi, thật đơn giản phải không nào.

Nguồn: https://cuongquach.com/

Previous articleEbook Linux Email 2nd Edition (PDF)
Next articleEbook Learning Linux Shell Scripting (PDF)
Bạn đang theo dõi website "https://cuongquach.com/" nơi lưu trữ những kiến thức tổng hợp và chia sẻ cá nhân về Quản Trị Hệ Thống Dịch Vụ & Mạng, được xây dựng lại dưới nền tảng kinh nghiệm của bản thân mình, Quách Chí Cường. Hy vọng bạn sẽ thích nơi này !