Part 2 – Cài đặt docker trên linux (Phần 2)

By | 28 December, 2018

Phần này chúng ta sẽ tìm hiểu cách cài đặt docker trên các hệ thống linux.

Bất kể lựa chọn của bạn là gì, bạn sẽ cần cài đặt 64 bit và kernel ở 3.10 hoặc mới hơn. Các kernel cũ hơn 3.10 không có các tính năng cần thiết mà Docker yêu cầu để chạy các container; mất dữ liệu và kernel panic có thể bị kernel panic trong các trường hợp nhất định.

Kiểm tra phiên bản Linux hiện tại của bạn với uname -r. Bạn sẽ thấy một cái gì đó như 3.10.[alphanumeric string].x86_64.

Debian và Ubuntu

Docker chạy trên:

  • Ubuntu Xenial 16.04 LTS
  • Ubuntu Wily 15.10
  • Ubuntu Trusty 14.04 LTS
  • Ubuntu chính xác 12.04 LTS
  • Debian testing stretch
  • Debian 8.0
  • Debian 7.0 Wheezy (bạn phải kích hoạt backport)

Debian Wheezy

Bạn cần kích hoạt backport (nếu không, bỏ qua phần này):

  1. Đăng nhập vào hệ thống và mở terminal có đặc quyền sudo hoặc root(hoặc chạy $ sudo -i từ terminal của bạn).
  2. Mở /etc/apt/sources.list.d/backports.list bằng trình soạn thảo văn bản yêu thích của bạn (nếu tệp không tồn tại, hãy tạo tệp đó).
  3. Xóa các mục hiện có.
  4. Thêm một mục cho backport trên Debian Wheezy:
  5. Cập nhật các gói của bạn: $ apt-get update -y

Ubuntu Precise 12.04

Bạn cần chắc chắn rằng bạn có phiên bản kernel 3.13. Bạn phải nâng cấp kernel của mình:

  1. Mở terminal trên hệ thống của bạn.
  2. Cập nhật hệ thống:
    $ sudo apt-get update -y
  3. Cài đặt các gói bổ sung:
    $ sudo apt-get install -y linux-image-generic-lts-trusty linux-headers-generic-lts-trusty
  4. Trên môi trường đồ họa Ubuntu, bạn cần chạy thêm:
    $ sudo apt-get install -y xserver-xorg-lts-trusty libgl1-mesa-glx-lts-trusty
  5. Khởi động lại hệ thống của bạn:
    $ sudo reboot

Cập nhật Apt

1. Đăng nhập vào hệ thống của bạn với người dùng có đặc quyền sudo.

2. Mở terminal.

3. Dọn dẹp các repo cũ:

$ sudo apt-get purge -y lxc-docker* && sudo apt-get -y purge docker.io* 

4. Cập nhật các gói của bạn, đảm bảo apt hoạt động với https và máy chủ có chứng chỉ CA:

$ sudo apt-get update -y && sudo apt-get install -y apt-transport-https ca-certificates 

5. Nhận khóa GPG mới:

$ sudo apt-key adv --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys 58118E89F3A912897C070ADBF76221572C52609D 

6. Mở hoặc tạo tệp /etc/apt/sources.list.d/docker.list trong trình soạn thảo văn bản của bạn (bạn cần sudo hoặc root cho việc này).

Thêm một mục phù hợp với hệ điều hành của bạn

VersionSource
Ubuntu Precise 12.04 LTSdeb https://apt.dockerproject.org/repo ubuntu-precise main
Ubuntu Trusty 14.04 LTS
deb https://apt.dockerproject.org/repo ubuntu-trusty main
Ubuntu Wily 15.10 LTSdeb https://apt.dockerproject.org/repo ubuntu-wily main
Ubuntu Xenial 16.04 LTS
deb https://apt.dockerproject.org/repo ubuntu-xenial main
Debian Wheezydeb https://apt.dockerproject.org/repo debian-wheezy main
Debian Jessiedeb https://apt.dockerproject.org/repo debian-jessie main
Debian Stretch/Sid

deb https://apt.dockerproject.org/repo debian-stretch main

7. Lưu và đóng tập tin.

8. Cập nhật lại Apt:
$ sudo apt-get update -y

9. Xác minh Apt kéo từ kho lưu trữ:
$ sudo apt-cache policy docker-engine

Cài đặt Docker

Nếu bạn sử dụng Ubuntu Trusty, Wily hoặc Xenial, hãy cài đặt gói kernel linux-image-extra:

$ sudo apt-get update -y && sudo apt-get install -y linux-image-extra-$(uname -r)

1. Cài đặt Docker: 

$ sudo apt-get install docker-engine -y 

2. Bắt đầu Docker: 

$ sudo service docker start 

3. Xác nhận hoạt động của Docker:

$ sudo docker run hello-world 

Docker Group

Nếu bạn thích, bạn có thể thiết lập một group docker để chạy Docker (thay vì root hoặc sudo). Tuy nhiêndocker cần phải có quyền truy cập sudodocker nhận được quyền truy cập tương tự như root.

1. Chạy lệnh sau để tạo group Docker trên Ubuntu:

$ sudo groupadd docker && sudo usermod -aG docker ubuntu

Đăng xuất và đăng nhập lại.

2. Chạy lệnh sau để tạo group Docker trên Debian:

$ sudo groupadd docker && sudo gpasswd -a ${USER} docker && sudo service docker restart

Bạn có thể chỉ định một người dùng thay vì ${USER} nếu bạn thích.

3. Xác minh cài đặt Docker thành công:
$ docker run hello-world

Red Hat Enterprise Linux (RHEL) và CentOS

Docker chạy trên RHEL 7 và CentOS 7.

Cài đặt Docker

Cài đặt với Yum

1. Đăng nhập vào hệ thống của bạn như một người dùng với đặc quyền sudo .

2. Cập nhật hệ thống của bạn : $ sudo yum update -y.

3. Thêm repo yum (sử dụng mã dưới đây cho cả RHEL 7  CentOS 7):

Cài đặt Docker:

 $ sudo tee /etc/yum.repos.d/docker.repo <<-'EOF'
 [dockerrepo]
 name=Docker Repository
 baseurl=https://yum.dockerproject.org/repo/main/centos/7/
 enabled=1
 gpgcheck=1
 gpgkey=https://yum.dockerproject.org/gpg
 EOF
 $ sudo yum install docker-engine -y

4. Start Docker:

$ sudo service docker start

5. Xác nhận sự hoạt động của Docker:

$ sudo docker run hello-world

Cài đặt với tập lệnh cài đặt Docker

  1. Đăng nhập vào hệ thống của bạn như một người dùng với sudo.
  2. Cập nhật hệ thống của bạn: $ sudo yum update -y
  3. Chạy tập lệnh cài đặt của Docker: $ curl -fsSL https://get.docker.com | sh; Kịch bản lệnh này thêm docker.repo kho lưu trữ và cài đặt Docker.
  4. Bắt đầu Docker: $ sudo service docker start
  5. Xác nhận Docker: $ sudo docker run hello-world

Docker Group

Nếu bạn thích, bạn có thể thiết lập một dockernhóm để chạy Docker (thay vì root). Tuy nhiên , như dockerphải có quyền truy cập sudodockernhận được quyền truy cập tương tự như root.

  1. Chạy lệnh sau để tạo nhóm Docker và thêm người dùng của bạn vào nhóm (thay thế USERNAME bằng tên người dùng của bạn):
    $ sudo groupadd docker && sudo usermod -aG docker USERNAME
  2. Đăng xuất và đăng nhập lại.
  3. Xác minh Docker hoạt động mà không có sudo: $ docker run hello-world

Khởi động Docker khi khởi động OS

Chạy một trong những điều sau đây:

  • $ sudo chkconfig docker on
  • $ sudo systemctl enable docker

Các vấn đề chung

Lưu ý: Thành viên trong group docker có quyền root . 

Ubuntu

Ubuntu Utopic 14.10 và 15.05 tồn tại trong kho apt của Docker mà không có hỗ trợ chính thức. Nâng cấp lên 15.10 hoặc [tốt nhất là] 16.04. Nếu bạn sử dụng Ubuntu 12.04, bạn cần cập nhật kernel của mình.

Debian

Nếu bạn chạy Debian Wheezy, bạn cần cập nhật các nguồn với backport.

“Cannot connect to the Docker daemon. Is ‘docker daemon’ running on this host?”

Nếu bạn gặp lỗi này, bạn cần unset DOCKER_HOST; chạy $ unset DOCKER_HOSTđể xóa biến.