Header Ads Widget

Ticker

6/recent/ticker-posts

Docker Basic 2: Cài đặt Docker CE cho Ubuntu và một số command trong Docker

Keyword: Install Docker CE for Ubuntu and some Command in Docker
Ở phần trước mình có giới thiệu và hướng dẫn cho các bạn về Docker và Docker File này kia rồi, nhưng bài viết cũng lâu và cũng chưa thật sự chi tiết và hiểu sâu về Docker lắm, hôm nay mình xin phép mạo mụi viết thêm một bài nữa về Docker và cài đặt Docker CE cho Ubuntu
Ta sẻ nhắc sơ một chút về Docker một xíu, vậy Docer dùng để làm gì và khi nào dùng Docker ?
  1. Tách biệt cài đặt cho các ứng dụng không gây ảnh hưởng hay xung đột gì bởi lẽ nó là môi trường riêng biệt, ví dụ Jenkins hoặc Docker, SonarQube v.v
  2. Xây dựng môi trường làm việc riêng hoàn toàn tách biệt đỡ tốn thời gian bởi vì nó có gói cài đặt sẵn, rất tiện lợi.
  3. Đồng nhất các môi trường phát triển lại với nhau, tránh phát sinh lỗi không mong muốn. 
  4. Đóng gói môi trường thực thi đi kèm các dự án
Nói chung nó như một máy ảo VMware hoặc Virtualbox mà các bạn luôn sử dụng vậy nhưng khác ở chỗ nó là các gói cài đặt tiện lợi, đại loại nếu bạn muốn dựng 1 Server Jenkins trên Ubuntu bạn sẻ làm gì ? đó là cài đặt Ubuntu Server hoặc Ubuntu sau đó bạn mới tải gói Jenkins về và cài đặt, tính ra bạn phải thông qua rất nhiều bước mới đến bước cài đặt Jenkins nói thật thì quá ròm rà, nhưng với Docker thì mọi thứ quá dễ dàng với 1 vài câu lệnh ngắn gọn là bạn đã có môi trường Jenkins trên Ubuntu rồi.
Thôi chúng ta vào thẳng vấn đề và bắt đầu vấn đề cài đặt Docker CE nhé
  • Nếu bạn có và đang sử dụng Docker phiên bản củ thì sử dụng câu lệnh sau để Uninstall nó đi nhé
sudo apt-get remove docker docker-engine docker.io
  • Bây giờ chúng ta đến bước Install Docker CE đây
Update các gói APT trước đã:
sudo apt-get update
Cài đặt gói APT cho phép Repository:
sudo apt-get install \
    apt-transport-https \
    ca-certificates \
    curl \
    software-properties-common
Sau đó ta Add Key chính thức của Docker CE vào
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo apt-get update
sudo apt-get install docker-ce
Sau khi đã có Docker rồi ta tiếp tục tìm hiểu về một số lệnh trong Docker nhé

Để tải Image về Local ta thực hiện câu lệnh sau:

docker pull <name_image>
Ví dụ: docker pull ubuntu (Mặc định sẻ là bản Ubuntu mới nhất)
Hoặc với Sonar
docker pull library/sonarqube:latest (Mình đã lựa chọn phiên bản mới nhất thay vì bản ổn định là docker pull library/sonarqube:lts)

Chạy Image:

docker run –name <tên_container> -v <thư mục trên máy tính>:<thư mục trong container> -p<port_máy tính>:<port_container>  <image name> /bin/bash
Ví dụ: docker run –name  sonar -d  -p 9000:9000 sonarqube
  •     docker run : lệnh chạy của docker
  •     –name: đặt tên cho container ở đây là  sonar . Name này là duy nhất, không thể tạo trùng, nếu không đặt thì docker tự random.
  •     -p mở port container ra ngoài IP public của máy đang chạy Docker
  •     -d bật chế độ chạy background
  •     sonarqube: tên images

Liệt kê các Container:

docker ps -a (Liệt kê tất cả các container)
docker ps  (Chỉ liệt kê các container đang chạy nền background)

Dừng Container đang chạy:

docker stop <container_id hoặc name_container>
docker stop $(docker ps –a –q) (Dừng tất cả các docker đang dùng)

Khởi động lại container đã dùng:

docker start <container_id hoặc name_container>
docker restart <container_id hoặc name_container>

Xóa Container không còn sử dụng:

docker rm <container_id hoặc name_container>
docker rm $(docker ps -a -q)   (Xóa tất cả các docker)
docker rmi -f <container_id hoặc name_container> (Ép buộc xóa một Container nào đó cứng đầu)

Truy cập vào một Container:

docker exec -it <container_id hoặc name_container> bash
docker attach <container_id hoặc name_container>

Export bản Container:

docker export <container_id hoặc name_container> | gzip > file_export.tar.gz

Import Container đến Image:

zcat file_export.tar.gz | docker <new_name_image> sau khi chạy xong. Chạy lệnh docker images để kiểm tra lại trong danh sách List Images các bạn sẻ thấy rõ.
Lưu ý: Còn nhiều cách Import khác các bạn có thể từ từ tìm hiểu
Đổi IP của mạng Docker0 theo ý của mình, như bạn biết khi bạn tạo ra 1 Container thì Container đó sẻ lấy mạng từ Docker0 và chia ra
Mình sẻ có hình cho dễ hiểu một chút
Như các bạn đã thấy ở trên IP của Docker0 là 172.17.0.1 vậy giờ ta muốn chuyển nó sang một IP mà ta mong muốn hay đại loại cấp IP tĩnh cho nó thì ta phải làm thế nào ?
Đều này đơn giản thôi các bạn chỉ việc tạo 1 file có tên là daemon.json nằm trong thư mục /etc/docker/ và thêm vào những nội dung sau
Nhìn thì các bạn cũng hiểu rồi phải không, tạm sơ là vậy khi save lại và restart lại thì coi như bạn đã chuyển đổi IP thành công, bây giờ IP của Docker0 của mình sẻ nằm ở dãi 10.0.1.129-254
Còn tạo Macvlan trong docker thì như thế nào và dùng để làm gì, đơn giản để cho các bạn kết nối các Container lại với nhau, nhưng phải nhớ là macvlan khi tạo nó cũng sẻ mang mạng Bridge chứ không phải dạng Host, ta tạo bằng cách với câu lệnh sau
docker network create -d macvlan \
  --subnet=10.0.1.128/25 \
  --gateway=10.0.1.129 \
  -o parent=ens33 pub_net
Mình sẻ nói sơ về câu lệnh ở trên với Create nghĩa là Tạo mạng và thuộc drive macvlan, còn Subnet là dãi IP đầu ví dụ bạn /24 thì IP bạn sẻ là 10.0.1.0/24 nhưng do IP của mình là /25 nên có khác một chút, tiếp theo là gateway nếu /24 như bình thường thì IP sẻ là 10.0.1.1 còn với mình sẻ là 10.0.1.129, phần quang trọng vẫn là parent bởi lẽ đây là nơi trỏ về mạng bên ngoài
Khi mình gõ ifconfig ở ngoài IP server bạn sẻ thấy eth0 đúng không đó là mạng kết nối chính của chúng ta, bình thường sẻ là thế nhưng do mình là máy ảo nên nó có tên là ENS33 ok vậy mình sẻ trỏ về card mạng đó và còn lại là tên của mạng sẻ tạo mình đặt là pub_net.
Ở đây mình không hướng dẫn kỉ về 2 vấn đề này bởi lẽ đây là phần nâng cao, mình chỉ nói sơ qua để bạn biết keyword mà tìm hiểu thôi, hoặc có thể đọc qua các bài viết sau để hiểu hơn nhé
Bài 1: https://docs.docker.com/v17.09/engine/userguide/networking/default_network/custom-docker0/
Bài 2: https://docs.docker.com/v17.09/engine/userguide/networking/get-started-macvlan/
Ok như vậy ở trên mình đã giới thiệu sơ về một số lệnh cơ bản khi sử dụng Docker rồi đó, chúc các bạn thành công nhé !
Nguồn: itblognote.com

Post a Comment

0 Comments