Yêu cầu thg 10 16, 2017 9:59 SA 821 1 1
  • 821 1 1
+1

Option privileged trong docker

Chia sẻ
  • 821 1 1

Mình đang sử dụng goofys docker, khi chạy image này cần phải thêm option --privileged thì mới chạy đc container. Ai có thể giải thích cho mình ý nghĩ của opton này k ạ? Thêm nữa khi mình k thể sử dụng image này trong docker-compose. Config như sau

  goofys:
    privileged: true
    mem_limit: 134217728
    cpu_shares: 50
    image: 
    env_file:
      - "./goofys/.env"
    volumes:
      - goofys:/mnt/s3

1 CÂU TRẢ LỜI


Đã trả lời thg 10 17, 2017 3:37 SA
Đã được chấp nhận
+2

Mình cũng chưa dùng goofys bao giờ, nên cũng không hiểu rõ lắm, nhưng theo mình suy đoán thì:

Goofys is a high-performance, POSIX-ish Amazon S3 file system written in Go

Goofys allows you to mount an S3 bucket as a file system.

Như vậy có vẻ như đây là công cụ để mount file system. Điều này đồng nghĩa với việc, để chạy được nó, bạn cần có quyền root.

  • Khi chạy Docker Container, theo mặc định thì hầu hết các thành phần có khả năng gây nguy hiểm thuộc về phần kernel sẽ bị vô hiệu quá, trong đó có các thành phần liên quan đến việc mount file system. Điều này có được nó rõ trong document của Docker tại đây
$ docker run -t -i --rm ubuntu bash
root@bc338942ef20:/# mount -t tmpfs none /mnt
mount: permission denied

This will not work, because by default, most potentially dangerous kernel capabilities are dropped; including cap_sys_admin (which is required to mount filesystems).

Và tham số --privileged sinh ra để giải quyết vấn đề đó.

The --privileged flag gives all capabilities to the container, and it also lifts all the limitations enforced by the device cgroup controller. In other words, the container can then do almost everything that the host can do.

Theo mình đoán thì đó có thể là lý do bạn cần có option --privileged khi chạy Container 😃

Chia sẻ
Avatar Hoàng Phương @phuong1492
thg 10 17, 2017 4:27 SA

Cám ơn anh ạ! Goofys dùng để đồng bộ giữa thư mục chỉ định ở local với 1 bucket trên s3 a. Có cách nào để chạy hoặc chỉnh sửa file Docker để khi chạy container cần option này k anh.

Avatar Tran Duc Thang @thangtd90
thg 10 17, 2017 6:29 SA

@phuong1492 Theo mình nghĩ là không bạn ạ (^^;) để thực hiện việc mount file system với S3 bucket thì chắc là buộc phải có option --privileged. Option này được đặt khi khởi tạo container, chứ không liên quan gì đến bản thân Docker Image, nên dù có chỉnh sửa gì Dockerfile cũng không ăn thua đâu bạn ạ (^^;)

Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí