Cách sử dụng Plugin Docker cho Visual Studio Code
Trong bài viết này, ta sẽ sử dụng Docker Plugin cho Visual Studio Code. Docker cho phép ta đóng gói các ứng dụng của bạn thành hình ảnh và chạy chúng dưới dạng containers trên bất kỳ nền tảng nào đã cài đặt Docker. Ta sẽ sử dụng plugin này với hai ngăn xếp nhà phát triển: Node.js và Go.Cài đặt
Bạn cần phải cài đặt docker trên trạm làm việc của bạn . Hướng dẫn về cách cài đặt và chạy docker có sẵn tại đây và nó phải dành riêng cho hệ điều hành cụ thể mà bạn đang chạy.
Bạn cũng cần phải cài đặt Mã Visual Studio .
 Khi bạn đã cài đặt Visual Studio Code, hãy mở nó, nhấp vào phần mở rộng ở khung bên trái nhất và tìm kiếm Docker. 
 Sau khi cài đặt, bạn sẽ nhận thấy một vài điều mới trong version  Visual Studio Code  của bạn . Ở khung bên trái nhất, có một phần Docker mới với biểu tượng Docker, khi được nhấp vào, Docker Explorer sẽ mở ra ba phần. Hình ảnh , Vùng chứa ,  Register  
 Ngoài ra còn có một số lệnh được thêm vào bảng lệnh, bạn có thể xem bằng cách mở bảng lệnh và nhập vào docker  .
 .
Node.js
Ta sẽ sử dụng ứng dụng Node.js để chứng minh các khả năng mà plugin Docker thêm vào VSCode.
Hãy tạo một server Express.
- mkdir docker-node 
- cd docker-node 
- npm init -y 
- npm install --save express 
- touch index.js 
Ta sẽ có một cây folder như sau:
. ├── index.js ├── node_modules ├── package-lock.json └── package.json  1 directory, 3 files Đây là nội dung của index.js
const express = require('express') const app = express()  app.listen(3000)  app.get('/', (req, res) => {   res.send('hello world') }) Cập nhật package.json để có tập lệnh bắt đầu.
"scripts": {     "start": "node index.js"   }, Bây giờ,  ta  có thể chỉ cần chạy ứng dụng này với npm start và chuyển đến cổng 3000 và xem ứng dụng hoạt động.
Theo truyền thống, để thêm Docker, ta sẽ làm theo các bước sau.
- Tạo một Dockerfile (hoặc docker-compos.yaml)
- Thêm hướng dẫn docker vào file (FROM, WORKDIR, ADD, EXPOSE, CMD)
-  Chạy bản docker build...trên terminal để xây dựng hình ảnh
-  Chạy docker run...trên terminal để chạy container
 Tuy nhiên, với plugin, tất cả những gì  ta  cần làm là như sau.
 Mở bảng lệnh và nhập vào docker , sau đó chọn Docker: Add Docker files to Workspace . Nó phải là lựa chọn đầu tiên. Nhấn Enter 
  Bạn cần  chọn nền tảng / ngăn xếp, chọn Node.js và nhấn Enter . 
 Sau đó,  bạn cần  chọn một cổng. Viết 3000 vì đó là cổng mà ứng dụng của  ta  sẽ lắng nghe. 
 Các  file  sau đây được bổ sung vào không gian làm việc của bạn: .dockerignore , docker-compose.debug.yml , docker-compose.yml , và Dockerfile . 
 .dockerignore cho .dockerignore bỏ qua các file  được liệt kê khi thêm file  vào hình ảnh xây dựng.
 docker-compose.debug.yml sẽ cho phép bạn chạy docker-compose với tính năng kiểm tra và đính kèm trình gỡ lỗi.
version: '2.1'  services:   docker-node:     image: docker-node     build: .     environment:       NODE_ENV: development     ports:       - 3000:3000       - 9229:9229     command: node --inspect=0.0.0.0:9229 index.js Tuy nhiên, nếu bạn đang gỡ lỗi trong quá trình phát triển, bạn có thể cần phải đính kèm một ổ đĩa để những thay đổi bạn thực hiện trên máy local của bạn vẫn tồn tại trong containers .
 Tệp docker-compose.yml là một file  docker-compose.yml tiêu chuẩn được sử dụng để chạy các dịch vụ docker. Khi bạn thêm các tài nguyên / dịch vụ khác như kết nối database  và bộ cân bằng tải, bạn sẽ chỉnh sửa file  này.
version: '2.1'  services:   docker-node:     image: docker-node     build: .     environment:       NODE_ENV: production     ports:       - 3000:3000 Dockerfile , là Dockerfile quan trọng nhất ở đây, vì nó phải được xây dựng, chứa các hướng dẫn mà  ta  sẽ phải viết thủ công nếu  ta  chưa cài đặt plugin.
FROM node:8.9-alpine ENV NODE_ENV production WORKDIR /usr/src/app COPY ["package.json", "package-lock.json*", "npm-shrinkwrap.json*", "./"] RUN npm install --production --silent && mv node_modules ../ COPY . . EXPOSE 3000 CMD npm start Tiếp theo, để xây dựng Hình ảnh, hãy mở bảng lệnh VS Code và nhập vào docker sau đó chọn Docker: Build Image và nhấn Enter . 
 Bạn sẽ  được yêu cầu  chọn Dockerfile, chọn nó và nhấn Enter . 
 Tiếp theo, bạn sẽ  được yêu cầu  chọn thẻ. Để docker-node mặc định được chọn và nhấn Enter . 
 Thiết bị  terminal  tích hợp sẽ mở ra và các bản ghi xây dựng sẽ hiển thị. 
 Cuối cùng,  ta  cần chạy containers .   , mở bảng lệnh và nhập vào docker run , chọn Docker: Run 
 Danh sách tất cả các containers  trong hệ thống của bạn sẽ hiển thị, hãy chọn docker-node:latest , cái mà  ta  đã gắn thẻ và nhấn Enter . 
 Thiết bị  terminal  sẽ hiển thị log  cho lệnh chạy. 
  Lưu ý  nó đã thêm -p 3000:3000 thị cổng vào  server  của  ta  để  ta  có thể chạy ứng dụng bằng cách truy cập localhost:3000 .
  Ta  cũng có thể chạy containers  bằng cách chuyển đến ngăn bên trái, chọn phần Docker , sau đó bên dưới Hình ảnh , chọn hình ảnh docker-node , nhấp chuột phải và nhấp vào chạy. 
 Các bản ghi giống nhau sẽ chạy trên terminal .
 Bạn cũng sẽ nhận thấy rằng phần hình ảnh ở trên có danh sách các hình ảnh trong hệ thống của bạn. Khi containers  docker-node đang chạy,  Ta  có thể kiểm tra các containers  đang chạy trong cùng một phần và thậm chí dừng chúng. 
 Ở trên, Attach Shell được chọn, tương đương với lệnh docker bên dưới.
- docker exec -it <container> sh 
Điều này cho thấy kết quả log terminal bên dưới.

Bạn có thể thấy ta đang ở trong containers và ta có thể liệt kê các file bên trong containers .
Dừng containers và thử chạy ứng dụng với docker-soạn. Mở bảng lệnh, tìm docker-soạn và xem kết quả.
Đi
Nếu bạn chưa quen với Golang, bạn có thể chuyển sang chủ đề tiếp theo.
Docker cũng được xây dựng với Go
Hãy tạo một ứng dụng Go.
- mkdir docker-go 
- cd docker-go 
- touch main.go 
Cây folder của bạn sẽ có một file .
. └── main.go  0 directories, 1 file Đây là nội dung của file  main.go
package main  import (     "log"     "net/http" )  func helloHandler(w http.ResponseWriter, r *http.Request) {     w.Write([]byte("Hello World")) }  func main() {     http.HandleFunc("/", helloHandler)      if err := http.ListenAndServe(":9000", nil); err != nil {         log.Fatalln("ListenAndServer Error", err)     } } Bạn có thể chạy Ứng dụng với:
- go run main.go 
Tuy nhiên, hãy sử dụng plugin VSCode Docker để tạo hình ảnh và chạy containers .
 Tạo Dockerfile bằng cách mở bảng lệnh, nhập Docker và chọn Docker: Add Dockerfile to Workspace .
 Bạn sẽ  được yêu cầu  chọn một nền tảng, chọn Go và nhấn Enter . 
 Sau đó, bạn sẽ  được yêu cầu  chọn một cổng, ghi vào cổng 9000 , vì đó là cổng  ta  đã chọn trên ứng dụng  của bạn  và nhấn Enter . 
 4 file  sau đây sẽ được tạo. .dockerignore , docker-compose.debug.yml , docker-compose.yml , và Dockerfile . 
 Tệp .dockerignore yêu cầu Docker bỏ qua một số file  khi thêm file  vào hình ảnh.
 Docker Compose sử dụng docker-compose.debug.yml và docker-compose.yml để chạy ứng dụng. Chúng không khác nhau nhiều, vì file  gỡ lỗi yêu cầu đầu vào bổ sung, vì gỡ lỗi Go phức tạp hơn.
 Tuy nhiên, Dockerfile ở đây là bit thú vị nhất. Hai dòng cuối cùng của build stage được  comment  và thêm RUN go install -v ./...
# RUN go-wrapper download   # "go get -d -v ./..." # RUN go-wrapper install    # "go install -v ./..." RUN go install -v ./... Đây là file docker cuối cùng.
#build stage FROM golang:alpine AS builder WORKDIR /go/src/app COPY . . RUN apk add --no-cache git # RUN go-wrapper download   # "go get -d -v ./..." # RUN go-wrapper install    # "go install -v ./..." RUN go install -v ./...  #final stage FROM alpine:latest RUN apk --no-cache add ca-certificates COPY --from=builder /go/bin/app /app ENTRYPOINT ./app LABEL Name=docker-go Version=0.0.1 EXPOSE 9000 Loại mẫu Dockerfile này được gọi là xây dựng nhiều giai đoạn và ưu điểm chính của nó là tối ưu hóa Docker image . Nó chủ yếu hữu ích cho các ngôn ngữ đã biên dịch, mà trong hầu hết các trường hợp không yêu cầu các công cụ biên dịch để chạy ứng dụng đã biên dịch. Cờ vây là một ví dụ điển hình.
Tóm lại, ta sử dụng một phần của bản dựng Docker để biên dịch ứng dụng, sau đó sao chép file binary đã biên dịch sang Docker image nhẹ hơn và chạy nó từ đó.
 Tiếp theo  ta  cần xây dựng hình ảnh. Mở bảng lệnh và nhập docker-build , chọn Docker: Build Image và nhấn Enter .
 Bạn sẽ  được yêu cầu  chọn Dockerfile, để mặc định được chọn và nhấn Enter .
 Cuối cùng,  bạn cần  chọn một thẻ hình ảnh. Để lại docker-go:latest mặc định docker-go:latest và nhấn Enter . 
 Bạn sẽ thấy log  xây dựng trong terminal  tích hợp.
 Cuối cùng,  ta  cần chạy containers . Mở bảng lệnh và nhập docker run . Chọn Docker: Run và nhấn Enter . 
 Bạn sẽ  được yêu cầu  chọn hình ảnh. Chọn docker-go:latest . 
 Bạn sẽ thấy log  trong Thiết bị  terminal  tích hợp. 
 Giống như trước đây, bạn cũng có thể chạy containers  bằng cách chọn phần Docker trong ngăn bên trái và bên dưới containers , chọn docker-go , nhấp chuột phải vào nhấp vào Chạy . 
 Sau đó, bạn sẽ thấy các log  docker run giống nhau.
 Vì containers  Docker đang chạy của  ta  chỉ có file  binary ,  ta  có thể đính kèm  shell , trong phần containers . 
  Ta  có thể nhập ls trong shell đính kèm trong Thiết bị  terminal  tích hợp và  ta  sẽ thấy một file  binary  có tên là app , tương ứng với Dockerfile. 
Các tính năng khác
Cuối cùng ta sẽ xem xét các tính năng hữu ích khác đi kèm với plugin VSCode Docker.
Docker kiểm tra hình ảnh: Điều này cho phép bạn kiểm tra hình ảnh được tạo và xem chi tiết trong file JSON.
 Chọn hình ảnh bạn muốn và mở menu ngữ cảnh và chọn hình ảnh kiểm tra . 
 Một file  JSON sẽ được mở với các chi tiết. 
 Hiển thị log  containers : Điều này cũng được tìm thấy trong menu ngữ cảnh để chạy containers .  Ta  sẽ sử dụng containers  Node.js đang chạy 
 Nhật ký sẽ được hiển thị trong Thiết bị  terminal  tích hợp. 
Register : Bạn có thể đăng nhập vào register Docker của bạn và xem các hình ảnh bạn đã tạo và đẩy.
 System Prune: Tùy chọn này cho phép bạn chạy docker system prune , giúp xóa các hình ảnh không sử dụng đến hệ thống của bạn. Nó có sẵn thông qua nút có cửa sổ và dấu thập trong trình khám phá Docker. 
 Intellisense: Nếu bạn phải tự mình viết các file  Docker (Dockerfile, docker-compos.yml), bạn sẽ nhận được intellisense hữu ích khi nhập.
 Nó thậm chí sẽ cung cấp cho bạn các thẻ hình ảnh có sẵn. Này được kích hoạt  bằng lệnh  tên hình ảnh, sau đó một dấu hai chấm đầy đủ, và CMD + Space . 
 Dockerfile Linting: Khi bạn gặp lỗi trong Dockerfiles  của bạn , một dòng nguệch ngoạc sẽ xuất hiện trong VS Code và khi bạn di chuột qua nó, bạn sẽ được hiển thị lỗi là gì. 
 Tab vấn đề bên dưới VS Code cũng sẽ hiển thị nó. 
Kết luận
Plugin Docker cho VS Code có thể giúp bạn nhanh chóng cài đặt và tạo các Dockerfiles của bạn , xây dựng và chạy chúng mà không cần tự mình nhập nhiều lệnh.
Các tin liên quan
Cách sử dụng Ansible để cài đặt và thiết lập Docker trên Ubuntu 18.042019-12-05
Cách tạo ứng dụng Django và Gunicorn với Docker
2019-10-25
Cách thiết lập Flask với MongoDB và Docker
2019-10-11
Cách cài đặt và sử dụng Docker trên Debian 10
2019-07-08
Cách sử dụng server Docker từ xa để tăng tốc quy trình làm việc của bạn
2019-06-25
Cách cài đặt WordPress với Docker Compose
2019-05-24
Cách di chuyển Docker compose workflow sang Kubernetes
2019-04-03
Cách tối ưu hóa image Docker cho sản xuất
2019-03-25
Giữ lại một ứng dụng Node.js để phát triển với Docker Compose
2019-03-05
Cách cài đặt và sử dụng Docker Compose trên CentOS 7
2019-01-23
 

