Các lệnh cơ bản của Docker và xây dựng Container bằng Dockerfile (Trung Tâm Tin Học VnPro)
Mục lục:
Kết nối với một container Docker đang chạy rất hữu ích khi bạn muốn xem những gì đang xảy ra bên trong container. Nếu bộ chứa Docker không hoạt động như mong đợi, bạn có thể gắn vào bộ chứa hoặc lấy vỏ cho bộ chứa và chạy các lệnh như
ps
hoặc
top
. Bạn cũng có thể nhập container, cài đặt các gói mới và xây dựng hình ảnh Docker mới từ nó.
Trong hướng dẫn này, chúng tôi sẽ giải thích cách gắn vào quy trình chạy chính của bộ chứa và cách lấy vỏ vào thùng chứa đang chạy.
Đính kèm vào Container
Mặc dù có thể chạy nhiều tiến trình trong một container, nhưng hầu hết các container docker chỉ chạy một tiến trình duy nhất. Lệnh được thực thi khi bắt đầu một container được chỉ định bằng lệnh
ENTRYPOINT
và / hoặc
RUN
.
Lệnh
docker attach
cho phép bạn gắn thiết bị đầu cuối của bạn vào container đang chạy. Điều này hữu ích khi bạn muốn xem những gì được viết trong đầu ra tiêu chuẩn trong thời gian thực hoặc để kiểm soát quá trình một cách tương tác.
Để hiểu rõ hơn về cách hoạt động của lệnh
attach
hãy chạy một thùng chứa Nginx mới tách ra bằng hình ảnh Nginx chính thức.
docker container run --name my_nginx -d -p 8080:80 nginx
Tùy chọn
-p 8080:80
yêu cầu Docker liên kết cổng 8080 của container với cổng 80 trên máy chủ.
Liệt kê các container để đảm bảo container container my_nginx đang chạy:
docker container ls
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 8e1c4974a8d8 nginx "nginx -g 'daemon of…" 3 minutes ago Up 2 seconds 0.0.0.0:8080->80/tcp my_nginx
Đính kèm vào container bằng ID hoặc tên của container:
docker container attach my_nginx
Lệnh mặc định của hình ảnh nginx được thực thi khi bạn chạy vùng chứa được đặt thành
CMD
. Khi bạn chạy lệnh
attach
thiết bị đầu cuối của bạn sẽ gắn vào quá trình
nginx
.
Mở
127.0.0.1:8080
trong trình duyệt của bạn và bạn có thể xem đầu ra của quá trình nginx trong thời gian thực.
192.168.33.1 - - "GET / HTTP/1.1" 200 612 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.75 Safari/537.36" "-" 192.168.33.1 - - "GET /favicon.ico HTTP/1.1" 404 555 "http://192.168.33.71:8080/" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.75 Safari/537.36" "-"
Để có quyền truy cập vào nhật ký container, bạn nên sử dụng lệnh
docker logs
.
Để tách khỏi bộ chứa mà không dừng nó, hãy sử dụng tổ hợp
CTRL-p
CTRL-q
. Nhấn
CTRL-c
dừng container.
Nếu các quy trình đang chạy mà bạn đang đính kèm để chấp nhận đầu vào, bạn có thể gửi hướng dẫn đến nó.
Nhận một vỏ để chứa
Lệnh
docker exec
cho phép bạn chạy các lệnh bên trong một container đang chạy.
Để xem lệnh
exec
hoạt động như thế nào và làm thế nào nó có thể được sử dụng để vào vỏ container, trước tiên, hãy bắt đầu một container mới. Chúng tôi sẽ sử dụng hình ảnh MySQL chính thức:
docker container run --name my_mysql -d mysql
Điều này sẽ tạo ra một thùng chứa có tên là my my my my my my.
Để thực thi một lệnh bên trong container, hãy chạy lệnh sau:
docker container exec -it my_mysql ls /var
Tùy chọn
-i
là viết tắt của tương tác và
-t
yêu cầu Docker phân bổ một thiết bị TTY giả. Lệnh
ls
sẽ liệt kê tất cả các tệp và thư mục bên trong thư mục chứa
/var
:
backups cache lib local lock log mail opt run spool tmp
Để lấy shell vào container tức là, để vào bên trong container, bắt đầu một phiên shell mới bằng cách thực hiện nhị phân shell. Bạn có thể sử dụng
sh
,
bash
hoặc bất kỳ shell nào khác có trong ảnh.
Lệnh dưới đây sẽ tạo một phiên Bash mới bên trong container:
docker container exec -it my_mysql /bin/bash
Dấu nhắc lệnh của bạn sẽ thay đổi, cho biết bạn hiện đang làm việc trên vỏ container.
Từ đây, bạn có thể chạy các lệnh theo cách tương tự như bạn làm trên bất kỳ máy chủ Linux nào khác. Ví dụ: để có được danh sách các biến môi trường hiện tại, hãy nhập
env
:
env
Đầu ra sẽ trông giống như thế này:
HOSTNAME=e0214d97e0fe MYSQL_ROOT_PASSWORD=my-secret-pw PWD=/ HOME=/root MYSQL_MAJOR=8.0 GOSU_VERSION=1.7 MYSQL_VERSION=8.0.17-1debian9 TERM=xterm SHLVL=1 PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin _=/usr/bin/env
Phần kết luận
Các lệnh thực thi
docker exec
và
docker attach
cho phép bạn kết nối với một container đang chạy. Để có được một shell tương tác với một container, sử dụng lệnh
exec
để bắt đầu một phiên shell mới. Lệnh
attach
gắn thiết bị đầu cuối của bạn vào một container đang chạy.
Oracle có thể sẽ tìm kiếm một sự hợp tác tương tự với đối thủ của Intel là Advanced Micro Devices, Rozwat nói. có một số thẻ độc quyền lớn kết hợp với nó, nó thường là cái gì chúng ta có thể làm với các nhà cung cấp khác ", ông Rozwat nói. Cloud Compute Cloud của Amazon (EC2)
Hợp đồng Amazon cũng không có ý nghĩa độc quyền, Rozwat chỉ ra: "Chúng tôi sẽ đưa ra những thông báo tiếp theo cho các môi trường điện toán đám mây khác". Tuy nhiên, Rozwat không chú ý tới các chủ đề khác, đặc biệt Oracle đã công bố một số ít các ứng dụng Fusion cho đến nay, tập trung vào CRM (quản lý quan hệ khách hàng) . Trong một cuộc thảo luận, Oracle đã hy vọng sẽ có được bộ sản phẩm Fusion Applications đầu tiên trong tay những người sử dụng đầu tiên vào năm 2009.
Các hack đã bao gồm một số bài viết prank từ Twitter người sử dụng như Fox News, Facebook và bầu cử tổng thống Barack Obama. Điều kỳ lạ đối với một số thông điệp này là chúng bao gồm các liên kết liên kết - một chương trình tiếp thị thông thường trả tiền cho người tạo liên kết để hướng lưu lượng truy cập đến một trang web khác như Amazon - theo các báo cáo. Điều này có thể làm cho việc tìm ra thủ phạm dễ dàng hơn vì các chương trình liên kết được đề cập đến phải có đường dẫn giấy ảo dẫn người tr
[ĐọC thêm: Làm thế nào để xóa phần mềm độc hại khỏi máy tính Windows của bạn]
Tuần trước Mayer đã cố gắng làm rõ vị trí của mình, cho rằng nó đã bị hiểu sai và rằng Yahoo vẫn có thể làm việc ở nhà, miễn là nó vào ban đêm hoặc vào cuối tuần. (Hey, cảm ơn!) Sau đó, cô đã đưa ra một ví dụ về cách một ứng dụng di động mới được gọi là Yahoo Thời tiết (nó cho bạn biết thời tiết) đã đến. Môi trường hợp tác mới của Yahoo, cô nói, làm cho nó có thể cho một người nào đó từ nhóm thời tiết và một người nào đó từ nhóm Flickr gặp nhau một cách ngẫu hứng trên khuôn viên của Yahoo. Và đó
Nhưng điều quan trọng nhất Mayer nói là cô ấy không đặc biệt chống lại telecommuting, chỉ là nó "không phù hợp với chúng tôi, ngay bây giờ." Cô ấy có một điểm. Liên lạc không làm việc cho 100% các công ty 100 phần trăm thời gian, nhưng vị trí là một chút mỉa mai cho quyết định trước đó của Mayer là Giám đốc điều hành. Là một trong những đơn hàng kinh doanh đầu tiên của cô vào năm ngoái, cô đã cung cấp cho mọi nhân viên một chiếc điện thoại thông minh mới. Trong thông báo của mình cho nhân viên,







