Muốn dùng Docker thì phải nắm được cơ bản
TIL
737
White

Ara_Optimus viết ngày 08/12/2019

Mở đầu [Đang hoàn thành...]

Bài viết này được cóp nhặt từ nhiều nguồn khác nhau và mình tổng hợp lại theo hiểu biết của mình về Docker. Hi vọng qua bài viết này các bạn sẽ có được cái nhìn tổng quát và cơ bản nhất về Docker. Nếu có thể hiểu được cơ bản về nó và phát triển ứng dụng vào công việc mình đang làm thì quả là một điều tuyệt vời :heart_eyes: :thumbsup:
Note: Với những bác nào đã triển khai qua Docker thì có thể bỏ qua bài viết này của em hoặc bớt chút thời gian đọc, góp ý giúp em để hoàn thiện thêm hiểu biết về Docker ạ :fast_forward: :fist:

1. Giới thiêu qua về docker.

Định nghĩa về docker thì có thể search trên gg rất nhiều nên mình chỉ tóm gọn lại nó là ứng dụng ảo hóa trên linux hay windows. Nhắc đến ảo hóa thì nhiều anh em hay nghỉ đến vmware. Vậy thì vmware và docker khác nhau ở điểm nào?
Giả sử 1 gia đình muốn nuôi 3 đứa trẻ và họ đến các công ty để tìm người trông trẻ cho 3 đứa trẻ đó. Công ty A đưa ra điều kiện 1 bà sẽ trông 1 đứa trẻ. Công ty B thì chỉ đưa ra điều kiện chỉ cần 1 bà sẽ trông được 3 đứa trẻ đó. Với 3 đứa trẻ thì thời gian chăm sóc sẽ khác nhau nên nếu 3 bà trông 3 đứa thì không tận dung hết thời gian. Với ví dụ mình đưa ra thì mỗi đứa trẻ xem như là 1 App, công ty A đại diện cho Vmware, công ty B đại diện cho Docker. Như vậy Docker sẽ tận dụng tài nguyên của máy vật lý tốt hơn vmware.
Để các bạn có hình dung tốt nhất về Docker trước khi bắt tay vào thực hành thì mình sẽ giới thiệu các bước:

  • Máy tính cần cài đặt docker client ( mình hướng dẫn cài đặt docker-ce trên ubuntu 16.04)
  • Tạo tài khoản trên trang docker hub để lưu file Image sau khi build.
  • Đầu tiên tạo ra dockerfile, nó sẽ chưa tất cả các câu lệnh setting, enviroment,..Khi build dockerfile nó sẽ tao ra images, run images thì tạo ra container, đây là thực thể thực thi file image

2. Hướng dẫn cài đặt Docker trên Ubuntu 16.04

  • Update software : sudo apt-get update

2. Lệnh hay dùng:

  • Chạy docker name_images: docker run name_images
  • Kiểm tra các images: docker images
  • Truy cập vào vỏ container: docker run -it name_container
  • Xem container: docker ps -a
  • Start/Stop container: docker start/stop container_name
  • Login docker Hub: docker login -u docker-registry-username
  • Pull images: docker push docker-registry-username/ubuntu-nodejs
  • Kiểm tra phiên bản: docker -v
  • Search image cần tìm trên docker hub: sudo docker search
  • download tutum/apache-php và mysql: sudo docker pull tutum/apache-php / docker pull mysql
  • Kiểm tra image đã pull về bằng lệnh: docker images
  • Tạo môi trường liên kết với thư mục : docker run -tid -p 9000:80 -v ~/Documents/blog:/var/www/html tutum/apache-php
  • Liệt kê containers:
    • đang chạy: sudo docker ps
    • tất cả (đang chạy và đã tắt): sudo docker ps -a
  • Khởi động và truy cập một container đã tắt: docker start {ID hoặc NAME} / docker exec -it {ID hoặc NAME} /bin/bash
  • Dừng một container: docker stop {ID hoặc NAME}
  • Xóa một container: docker rm {ID hoặc NAME}
  • Xóa container đang chạy thì bạn thêm option -f: docker rm -f {ID hoặc NAME}
  • Xóa một image: docker rmi {ID hoặc NAME}
  • Tạo một container từ image có sẵn: docker run -v {thư mục trên máy tính}:{thư mục trong container} -it {image name} /bin/bash
    Lệnh trên tạo container, liên kết một thư mục trên máy tính vào bên trong container, và truy cập vào chế độ dòng lệnh của container đó.
    Đối với các ứng dụng như web, container sẽ tạo một web server trên một cổng nào đó, khi đó chúng ta cần phải map cổng đó từ container ra máy tính ngoài, khi đó chúng ta dùng thêm tham số -p như sau: docker run -v /abc:/abc -p 80:80 -it ubuntu /bin/bash
    Lệnh trên map cổng 80 của container ra cổng 80 của máy tính hiện tại.

3. Hướng dẫn tạo dockerfile

1.Tạo file có tên là Dockerfile. Lưu ý tên phải đúng và chữ D viết hoa nhé:
sudo vi Dockerfile
2.Thêm nội dung cho file:

#This is a sample Image #comment
FROM ubuntu #image mà bạn muốn tạo image khác từ image ubuntu
MAINTAINER demousr@gmail.com #thông tin tác giả

RUN apt-get update #thực thi các lệnh sau RUN
RUN apt-get install –y nginx
CMD [“echo”,”Image created”] # thực thi lệnh comment trong quá trình RUN

Ngoài ra có các lệnh sau:
  • ENV {var} {path} #Khai báo môi trường, gán biến.
    ví dụ: ENV nginx_conf /etc/nginx/nginx.conf
  • COPY {file1} {file2} #Copy file 2 vào file 1 (host machine tới docker container)
  • ADD

Optimus 25-10-2019

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

Ara_Optimus

1 bài viết.
1 người follow
Kipalog
{{userFollowed ? 'Following' : 'Follow'}}
Bài viết liên quan
White
0 4
fCC: Technical Documentation Page note So I have finished the HTML part of this exercise and I want to come here to lament about the lengthy HTML ...
HungHayHo viết hơn 1 năm trước
0 4
White
2 0
I used Spring boot, Hibernate few times back then at University, I'v started using it again recently. In this (Link), I want to check how Spring J...
Rey viết 11 tháng trước
2 0
White
23 1
Toán tử XOR có tính chất: + A XOR A = 0 + 0 XOR A = A Với tính chất này, có thể cài đặt bài toán sau với độ phức tạp O(N) về runtime, và với O(1)...
kiennt viết 3 năm trước
23 1
{{like_count}}

kipalog

{{ comment_count }}

bình luận

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


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