Skip to content

Latest commit

 

History

History
165 lines (99 loc) · 5.55 KB

7. Command Docker.md

File metadata and controls

165 lines (99 loc) · 5.55 KB

Một số command thao tác với Docker

Tìm kiếm một images từ Docker hub

$ docker search --limit 5 <images name>

--limit để giới hạn kết quả tìm kiếm, mặc định sẽ là 25

Pull images hoặc repository từ registry

$ docker pull [options] NAME[:TAG|@DIGEST]

Trong đó NAME là tên images

Thao tác cơ bản với container

Tạo một container mới:

$ docker create [OPTIONS] IMAGE [COMMAND] [ARG...]

Copy file/folder giữa container và local filesystem

docker cp [OPTIONS] CONTAINER:SRC_PATH DEST_PATH|-
docker cp [OPTIONS] SRC_PATH|- CONTAINER:DEST_PATH

Đổi tên container

docker rename CONTAINER NEW_NAME

Docker run

Tạo mới một container và tự động khởi chạy nó khi tạo xong. Câu lệnh này có vai trò tương tự như câu lệnh docker create nhưng docker create còn cho phép cấu hình hình thêm các yêu cầu còn thiếu sau khi tạo ra container để có thể hoạt động đúng mục đích.

$ docker run [OPTIONS] IMAGE [COMMAND] [ARG...]

Docker exec

Chạy một command bên trong container đang ở trạng thái running.

$ docker exec [OPTIONS] CONTAINER COMMAND [ARG...]

Quản lý dữ liệu container với docker volume

Command Mô tả
docker volume create Tạo một volume
docker volume inspect Hiển thị thông tin về một hay nhiều volumes
docker volume ls Liệt kê volumes
docker volume prune Loại bỏ volumes không sử dụng
docker volume rm Loại bỏ một hay nhiều volumes

Tạo một volume:

$ docker volume create [OPTIONS] [VOLUME]

Build một images từ Dockerfile

$ docker build [OPTIONS] PATH | URL | -

Push một image hoặc một repository tới registry

$ docker push [OPTIONS] NAME[:TAG]

Ví dụ: Muốn push một image, ta cần phải commit image, sau đó tạo ra tag image trước khi push.

docker commit c16378f943fe rhel-httpd
docker tag rhel-httpd registry-host:5000/myadmin/rhel-httpd
docker push registry-host:5000/myadmin/rhel-httpd

Lưu một hoặc nhiều image tới một file nén tar (mặc định streamed từ STDOUT)

docker save [OPTIONS] IMAGE [IMAGE...]

Kiểm tra thông tin container

Kiểm tra thông tin ngắn gọn tất cả các container đang có trong máy

root@trang-20-51:~# docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                    PORTS               NAMES
a8a3ce8569c1        alpine:latest       "ash"                    22 minutes ago      Up 22 minutes                                 no-net-alpine
48bda035a880        mysql:latest        "docker-entrypoint.s…"   5 days ago          Exited (0) 4 days ago                         db
c8e04feea14c        ubuntu_ngnix2       "/venv/start.sh /bin…"   5 days ago          Exited (0) 5 days ago                         relaxed_johnson
06bb37966ae5        ubuntu_ngnix2       "/venv/start.sh /bin…"   5 days ago          Created                                       naughty_chaplygin
0bc0405baf4d        ubuntu              "/bin/bash"              5 days ago          Exited (0) 22 hours ago                       elastic_minsky
78da32873684        mysql               "docker-entrypoint.s…"   10 days ago         Exited (0) 10 days ago                        mysql1

Kiểm tra thông tin chi tiết của container dưới dạng json:

docker inspect [containerID/containerName]

Xem log mà container tạo ra:

docker logs [containerID]

Chạy docker events dưới background để theo dõi trực tiếp:

docker events&

Chạy một container với port NAT chỉ định và gắn Volume

Trong trường hợp muốn chỉ định port từ máy host vào port mà ứng dụng trong container cung cấp thì cần sử dụng tham số -p.

docker run --name apache_test1 -p 8080:80 -p 443:443 -d eboraas/apache

Nếu bạn có một thư mục chứa code hoặc tham số cấu hình trên máy host, muốn ứng dụng trong container sử dụng được thì tham số -v để chỉ dẫn cho container biết:

mkdir -p website && cd website
docker run --name apache_test2 -p 8080:80 -p 443:443 -v $(pwd):/var/www/  -d eboraas/apache

Lúc này khi chỉnh sửa code trên trên thư mục này ở docker host thì code trên container sẽ được thay đổi ngay lập tức

Liên kết giữa các container

Sử dụng tham số --link

Ví dụ tạo một Drupal app (apache, php, mysql, drupal):

mkdir -p drupal-link-example && cd drupal-link-example

docker pull drupal:8.0.6-apache
docker pull mysql:5.5

Start a container for mysql

docker run --name mysql_example \
           -e MYSQL_ROOT_PASSWORD=root \
           -e MYSQL_DATABASE=drupal \
           -e MYSQL_USER=drupal \
           -e MYSQL_PASSWORD=drupal \
           -d mysql:5.5

Start a Drupal container and link it with mysql: --link [name or id]:alias

docker run -d --name drupal_example \
           -p 8280:80 \
           --link mysql_example:mysql \
           drupal:8.0.6-apache

Open http://localhost:8280 to continue with the installation. On the db host use: mysql

Tham khảo

https://github.com/hocchudong/ghichep-docker/blob/master/docs/docker-coban/ghichep-lenh-docker.md