Docker

Thực thi câu lệnh trong Docker Container từ Host

Để thực thi lệnh trong một Docker Container chúng ta phải truy cập vào container sau đó tiến hành gõ lệnh, tuy nhiên nếu số lượng Container nhiều, việc lần lượt truy cập từng Container để thực thi lệnh sẽ không hiệu quả chút nào. Bài viết này sẽ hướng dẫn các bạn thực thi lệnh trong Container mà không cần truy cập vào nó.

Xem thêm:

Truy cập Container và tạo file

Trước hết dùng lệnh docker ps để liệt kê các Container đang chạy

[root@itfromzero ~]# docker ps
CONTAINER ID     IMAGE     COMMAND         CREATED               STATUS         PORTS       NAMES
fa05e898c196     centos    "/bin/bash"     About a minute ago    Up 11 seconds              CENTOS7

Truy cập vào Container bằng lệnh sau:

docker exec -it CENTOS7 /bin/bash

Cú pháp:

docker exec -it <container id hoặc tên container> /bin/bash

Tạo test file tại thư mục /opt

[root@fa05e898c196 /]# mkdir /opt/test.txt
[root@fa05e898c196 /]# ls -l /opt/
drwxr-xr-x 2 root root 6 Nov 16 03:57 test.txt

Thoát khỏi container các bạn nhấn tổ hợp phím Ctrl + D

Thực thi câu lệnh trong Docker Container từ Host

Để thực thi câu lệnh trong Container từ Host các bạn thực thi lệnh theo cú pháp sau:

docker exec <container id hoặc tên container> /bin/bash -c ‘<câu lệnh>’

Ví dụ:

[root@itfromzero ~]# docker exec CENTOS7 /bin/bash -c 'ls -l /opt'
total 0
drwxr-xr-x 2 root root 6 Nov 16 03:57 test.txt
[root@itfromzero ~]#

Từ host mình đã dùng lệnh ls -l thư mục opt trong Container CENTOS 7. Các bạn có thể thực thi nhiều lệnh phức tạp hơn, hay kết hợp nhiều lệnh với nhau. Ví dụ:

docker exec CENTOS7 /bin/bash -c 'cd /etc/init.d/ && /etc/init.d/mysqld start' 
docker exec CENTOS7 /bin/bash -c 'mysql -h localhost -u root -p'PassWord' DB_1 -e "truncate table DB_1.DB_LOG"'
docker exec CENTOS7 /bin/bash -c 'mysql -h localhost -u root -p'PassWord' DB_2 -e "truncate table DB_2.DB_LOG"'

Chúc các bạn thành công.

Share:
Leave a Comment
Share
Published by
Admin

Recent Posts

Hướng dẫn nhắn tin Telegram trên Linux Terminal

Như các bạn đã biết thì Telegram là một dịch vụ tin nhắn tuyệt vời…

4 năm ago

Cài đặt Apache Tomcat 9 trên Ubuntu 20.04

Apache Tomcat là gì? Apache Tomcat là một web server HTTP được phát triển bởi…

4 năm ago

04/2020 – Build PC chơi game giá 20 triệu

20 triệu có lẽ là một mức chi phí khá lý tưởng cho một máy…

4 năm ago

Sử dụng Microsoft Edge Chromium: Thay đổi tìm kiếm mặc định, cài Chrome Extensions

Micosoft chính thức phát hành Microsoft Edge Chromium Microsoft đã chính thức tung ra trình…

4 năm ago

CentOS 8 – Những thay đổi và tính năng

CentOS 8 đã phát hành ngày 25/09/2019, phiên bản 8 lần này có những thay đổi…

5 năm ago

Top 5 Laptop cho dân văn phòng 2019

Thời buổi công nghệ phát triển, phần lớn công việc của con người đều có…

5 năm ago