Các lệnh cơ bản với docker
TIL
589
White

Cùi Bắp viết ngày 10/08/2016

Các lệnh cơ bản với docker

Mới chuyển qua dùng docker thay vì dùng vagrant, cảm giác là docker chạy rất nhanh và ko làm chậm hệ thống. Dưới đây là một số lệnh hay dùng trong Docker:

  • Pull một image từ Docker Hub
    docker pull {image_name}

  • Liệt kê các images hiện có
    docker images

  • Xóa một image
    docker rmi {image_id/name}

  • Liệt kê các container đang chạy
    docker ps
    docker ps -a #Liệt kê các container đã tắt

  • Xóa một container
    docker rm -f {container_id/name}

  • Đổi tên một container
    docker rename {old_container_name} {new_container_name}

  • Khởi động một container
    docker start {new_container_name}
    docker exec -it {new_container_name} /bin/bash

  • Tạo mới một container, đồng thời khởi động với tùy chọn cổng và volume
    docker run --name {container_name} -p {host_port}:{container_port} -v {/host_path}:{/container_path} -it {image_name} /bin/bash

  • Xem các thay đổi trên container
    docker diff {container_name}

  • Commit các thay đổi trên container và image
    docker commit -m "message" {container_name} {image_name}

  • Save image thành file .tar
    docker save {image_name} > {/host_path/new_image.tar}

  • Tạo một image mới từ file .tar
    cat musashi.tar | docker import - {new_image_name}:latest

  • Xem lịch sử các commit trên image
    docker history {image_name}

  • Khôi phục lại images từ IMAGE_ID
    docker tag {iamge_id} {image_new_name}:{tag}

  • Build một image từ container
    docker build -t {container_name} .
    Dấu . ở đây ám chỉ Dockerfile đang nằm trong thư mục hiện tại.

Câu hỏi:
Em có một câu hỏi về docker, mỗi khi chạy lệnh docker run với image X, docker đều tạo ra một container mới với PID mới (có thể dùng lệnh docker ps sẽ thấy), tuy nhiên mình có cách nào để docker run một image X với một container đã tồn tại không ?
Em thấy nếu cứ mỗi lần develop mà chạy docker run thì sau này sẽ càng nhiều container id được tạo ra, cái này có thể gây lãng phí tài nguyên hệ thống nhỉ :joy:
Em có thử qua lệnh docker exec tuy nhiên nó lại không có option bind port và volume như lệnh docker run

Cám ơn mọi người đã đọc.

Bình luận


White
{{ comment.user.name }}
Bỏ hay Hay
{{comment.like_count}}
Male avatar
{{ comment_error }}
Hủy
   

Hiển thị thử

Chỉnh sửa

White

Cùi Bắp

16 bài viết.
90 người follow
Kipalog
{{userFollowed ? 'Following' : 'Follow'}}
Cùng một tác giả
White
71 3
Bài viết này được dịch từ (Link) https://code.facebook.com/ mà theo mình khá hữu ích đối với web developer. Trong hai năm qua, Facebook đã làm việ...
Cùi Bắp viết hơn 1 năm trước
71 3
White
50 9
Bài viết này xin đề cập tới Nginx Load balancing 1. Thế nào Load Balancing Load Balancing hay còn gọi là Cân bằng tải ?? một kỹ thuật thường đượ...
Cùi Bắp viết gần 2 năm trước
50 9
White
18 0
Nhân tiện vừa đọc bài viết liên quan tới OpenCV trên Kipalog, nên em xin giới thiệu về giải thuật sinh ảnh mosaic từ một ảnh gốc. Không hiểu sinh ả...
Cùi Bắp viết hơn 2 năm trước
18 0
Bài viết liên quan
White
0 2
fCC: Technical Documentation Page note So I have finished the HTML part of this exercise and I want to come here to lament about the lengthy HTML ...
HungHayHo viết 27 ngày trước
0 2
White
19 1
Toán tử XOR có tính chất: + A XOR A = 0 + 0 XOR A = A Với tính chất này, có thể cài đặt bài toán sau với độ phức tạp O(N) về runtime, và với O(1)...
kiennt viết gần 2 năm trước
19 1
White
1 1
Chào mọi người, hôm nay mình viết một bài TIL nhỏ về cách lấy độ phân giải của màn hình hiện tại đang sử dụng. xdpyinfo | grep dimensions Kết quả...
namtx viết 12 tháng trước
1 1
{{like_count}}

kipalog

{{ comment_count }}

bình luận

{{liked ? "Đã kipalog" : "Kipalog"}}


White
{{userFollowed ? 'Following' : 'Follow'}}
16 bài viết.
90 người follow

 Đầu mục bài viết

Vẫn còn nữa! x

Kipalog vẫn còn rất nhiều bài viết hay và chủ đề thú vị chờ bạn khám phá!