- vừa được xem lúc

some docker examples

0 0 19

Người đăng: Tuan Nguyen Minh

Theo Viblo Asia

ubuntu

chạy một container ubuntu

docker run -d \
ubuntu \
bash -c "shuf -i 1-10000 -n 1 -o /data.txt && tail -f /dev/null"

lệnh tail để giữ cho container chạy

dev container for java

docker run --name docs \
-p 127.0.0.1:4000:4000 \
-w /app -v "$(pwd):/app" \
--env-file .env \
openjdk:8u322-jdk-oraclelinux8 \
sh -c "java -jar docs-1.0.0.jar"

dev container node.js

docker run -dp 3000:3000 \
-w /app \
-v "$(pwd):/app" \
node:12-alpine \
sh -c "yarn install && yarn run dev"

assign static ip to container

tham khảo https://www.cloudsavvyit.com/14508/how-to-assign-a-static-ip-to-a-docker-container/

with inline cmd

create new separate network

docker network create --subnet=172.20.0.0/16 customnetwork
  • 172.20.0.0/16 là card mạng + subnet
  • customnetwork là tên network mà bạn muốn tạo

attach new container to network above

docker run --name mongo --net customnetwork --ip 172.20.0.9 -d mongo:5.0

let's check it

docker inspect -f '{{range.NetworkSettings.Networks}}{{.IPAddress}}{{end}}' mongo

with docker-compose

version: "2" services: webserver: image: nginx networks: customnetwork: ipv4_address: 172.20.0.2 networks: # name of docker network customnetwork: ipam: config: - subnet: 172.20.0.0/16

how to copy docker image from computer to computer

https://stackoverflow.com/a/23938978/10459230

You will need to save the Docker image as a tar file:

docker save -o path_for_generated_tar_file image_name

Then copy your image to a new system with regular file transfer tools such as cp, scp or rsync(preferred for big files). After that you will have to load the image into Docker:

docker load -i path_to_image_tar_file

manage secret in docker

PS: You may need to sudo all commands.# How To Manage Secret In Docker

các thông tin như

  • tài khoản + mật khẩu db
  • ssl key
  • credential

không thể inject lúc build

  • một phần vì lý do sau này nếu thay đổi phải build lại
  • một phần do vấn đề nếu build xong thì image đó sẽ public
    • và ai sử dụng sẽ nắm được tất

từ đó sinh ra việc cần phải quản lý các thông tin này một cách hợp lý

Sau đây là một vài hướng có thể xem xét

sử dụng environment variable tại thời điểm chạy

docker run -e key value ...

sử dụng mount volumes nếu các credential nằm trên file

docker run -v /path/to/secret/file:/app/secret

sử dụng db, secret store, (key-value db) để fetch dữ liệu

side car pattern (cơ mả vấn đề giờ lại sao để bảo mật cái dữ liệu để kết nối ???)

mình nghĩ cái này thay vì kéo dữ liệu

thì mình sẽ push cấu hình cho con đó, đồng thời khởi tạo các kết nối luôn

như này thì chỉ cần quản lý secret của app đang chạy là được

Bình luận

Bài viết tương tự

- vừa được xem lúc

Tìm hiểu cơ bản về Docker - công nghệ đáng để Developer sử dụng

1. Giới thiệu.

0 0 44

- vừa được xem lúc

Tổng hợp kiến thức cần biết về Docker và Docker Swarm (Phần 3 - Thành phần & tính năng Docker)

I. Thành phần của Docker. 1. Docker Engine.

0 0 39

- vừa được xem lúc

Tổng hợp kiến thức cần biết về Docker và Docker Swarm (Phần 1 - Tổng quan về Docker)

I. Docker là gì.

0 0 41

- vừa được xem lúc

Tìm hiểu cơ bản về Kubernetes - K8s (Part 1)

. Lời nói đầu. . . V.

0 0 124

- vừa được xem lúc

Phân biệt Docker image vs Container

Giới thiệu. Docker là một phần mềm nguồn mở được thiết kế để hỗ trợ và đơn giản hóa việc phát triển ứng dụng.

0 0 44