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):
- Đăng nhập vào hệ thống và mở terminal có đặc quyền
sudo
hoặcroot
(hoặc chạy$ sudo -i
từ terminal của bạn). - 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 đó). - Xóa các mục hiện có.
- Thêm một mục cho backport trên Debian Wheezy:
- 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:
- Mở terminal trên hệ thống của bạn.
- Cập nhật hệ thống:
$ sudo apt-get update -y
- Cài đặt các gói bổ sung:
$ sudo apt-get install -y linux-image-generic-lts-trusty linux-headers-generic-lts-trusty
- 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
- 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
Version | Source |
Ubuntu Precise 12.04 LTS | deb 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 LTS | deb https://apt.dockerproject.org/repo ubuntu-wily main |
Ubuntu Xenial 16.04 LTS | deb https://apt.dockerproject.org/repo ubuntu-xenial main |
Debian Wheezy | deb https://apt.dockerproject.org/repo debian-wheezy main |
Debian Jessie | deb 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ên, docker
cần phải có quyền truy cập sudo
, docker
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 và 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
- Đăng nhập vào hệ thống của bạn như một người dùng với
sudo
. - Cập nhật hệ thống của bạn:
$ sudo yum update -y
- 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êmdocker.repo
kho lưu trữ và cài đặt Docker. - Bắt đầu Docker:
$ sudo service docker start
- 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 docker
nhóm để chạy Docker (thay vì root
). Tuy nhiên , như docker
phải có quyền truy cập sudo
, docker
nhận được quyền truy cập tương tự như root
.
- 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
- Đăng xuất và đăng nhập lại.
- 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.