Chạy thử Docker Swarm
Docker
46
docker swarm
1
Vagrant
16
devops
30
White

Nguyen Sy Thanh Son viết ngày 20/04/2016

Trong bài viết này, mình sử dụng một máy ảo Ubunut Trusty 14.04, đã cài sẵn Docker. Để dựng máy ảo, mình sử dụng Vagrant và VirtualBox. Để tìm hiểu về cách sử dụng, cài đặt Vagrant + VirtualBox, các bạn có thể đọc lại bài trước của mình hoặc tham khảo blog https://sonnguyen.ws/vi/chuan-bi-moi-truong-phat-trien-voi-vagrant/.

Dựng máy ảo

Để tạo máy ảo, chúng ta sử dụng Vagrantfile sau:

Vagrant.configure(2) do |config|
  config.vm.box = "ubuntu/trusty64"
  config.vm.hostname = "dev-server"
  config.vm.network "private_network", ip: "172.20.20.21"

  config.vm.provider "virtualbox" do |vb|
    vb.gui = false
    vb.memory = 2048
    vb.cpus = 1
  end
  config.vm.provision "shell", inline: <<-SHELL
     sudo apt-get update
     sudo apt-get install -y whois git
     sudo useradd -m -p `mkpasswd password` -s /bin/bash dev
     sudo usermod -a -G sudo dev

     echo Installing Docker ...
     sudo su -
     apt-key adv --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys 58                                                                                                                118E89F3A912897C070ADBF76221572C52609D
     echo "deb https://apt.dockerproject.org/repo ubuntu-trusty main" > /etc/apt                                                                                                                /sources.list.d/docker.list
     apt-get update && apt-get install -y linux-image-extra-$(uname -r)
     apt-get update && apt-get install -y docker-engine
  SHELL
end

Cài đặt Swarm

Sau khi hoàn tất, việc dựng máy ảo, bạn cần SSH vào máy ảo đó và cài đặt Docker Swarm với lệnh sau:

sudo docker pull swarm

Khi đã cài đặt thành công Docker Swarm, chúng ta sẽ thay đổi cấu hình mặc định của Docker, bằng cách thêm dòng sau vào /etc/default/docker:

DOCKER_OPTS="-H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock"

Các bạn chú ý, với Debian, và CentOS, đường dẫn file cấu hình của docker sẽ không phải là /etc/default/docker.

Sau khi thay đổi file cấu hình, chúng ta cần khởi động lại Docker:

sudo service docker restart

Video

Giới thiệu và chạy thử Docker Swarm

Docker Swarm

Để chạy được Swarm, chúng ta cần ba thành phần sau:

  • Swarm Node (Chạy trên tất cả các Hosts)
  • Swarm Master
  • Discovery Service

Để đơn giản, chúng ta sẽ sử dụng Global Discovery Service của Docker (Docker Hub). Để làm được điều này, trước hết chúng ta cần một token. Lệnh tạo token như sau:

sudo docker run --rm swarm create

Sau khi có được $TOKEN_ID, chúng ta bắt đầu chạy Swarm Node với lệnh:

sudo docker run -d swarm join --addr=172.20.20.20:2375 token://[YOUR_TOKEN]

Và chạy Swarm Master:

sudo docker run -d -p 12375:2375 swarm manage token://[YOUR_TOKEN]

Nhưng vậy là chúng ta đã hoàn thành chạy Docker Swarm trên một Node.

Để chạy lệnh của Docker Swarm, chúng ta có hai cách.

Cách một, sử dụng tham số -H [DIA_CHI_SWAMR_MASTER]

sudo docker -H :12375 info

Cách hai, đưa địa chỉ Swarm Master vào biến môi trường

sudo su -
export DOCKER_HOST=tcp://172.20.20.20:12375
docker info

Như vậy là chúng ta đã hoàn thành tất cả các bước. Bây giờ bạn đã có thể chạy thử một Container trên Swarm.

Để chạy Swarm trên nhiều Node, bạn chỉ cần thêm một bước, chạy lệnh swarm join trên các Node còn lại và sử dụng chung một Token.

Nguồn Chạy thử Swarm trên một node

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

Nguyen Sy Thanh Son

6 bài viết.
94 người follow
Kipalog
{{userFollowed ? 'Following' : 'Follow'}}
Cùng một tác giả
White
33 2
Như các bạn biết, Internet Of Things là môt xu thế công nghệ được mọi người hướng tới nhiều nhất trong thời gian qua. Những Developer kinh nghiệm c...
Nguyen Sy Thanh Son viết gần 4 năm trước
33 2
White
12 2
Có thể bạn sẽ không bao giờ nghĩ đến việc phải xóa một commit trong Git. Tuy nhiên, biết đâu đấy, trong tương lai, có khi bạn lại cần đến nó. Bài v...
Nguyen Sy Thanh Son viết hơn 4 năm trước
12 2
White
11 1
Trong phần này, mình sẽ tiếp tục chia sẻ với các bạn ngày thứ 2 học IOT của mình. Trong phần trước, mình đã tìm hiểu cơ bản về ESP8266, và NodeMCU...
Nguyen Sy Thanh Son viết gần 4 năm trước
11 1
Bài viết liên quan
White
10 0
Một trong những trường hợp build docker image là thừa hưởng từ một image mẹ Lấy một ví dụ sau: Dockefile FROM my_repo/my_image ENTRYPOINT ech...
Lơi Rệ viết 5 năm trước
10 0
{{like_count}}

kipalog

{{ comment_count }}

bình luận

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


White
{{userFollowed ? 'Following' : 'Follow'}}
6 bài viết.
94 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á!