Docker compose up là gì

Facebook

邮箱或手机号 密码

忘记帐户?

注册

无法处理你的请求

此请求遇到了问题。我们会尽快将它修复。

  • 返回首页

  • 中文(简体)
  • English (US)
  • 日本語
  • 한국어
  • Français (France)
  • Bahasa Indonesia
  • Polski
  • Español
  • Português (Brasil)
  • Deutsch
  • Italiano

  • 注册
  • 登录
  • Messenger
  • Facebook Lite
  • Watch
  • 地点
  • 游戏
  • Marketplace
  • Meta Pay
  • Oculus
  • Portal
  • Instagram
  • Bulletin
  • 本地
  • 筹款活动
  • 服务
  • 选民信息中心
  • 小组
  • 关于
  • 创建广告
  • 创建公共主页
  • 开发者
  • 招聘信息
  • 隐私权政策
  • Cookie
  • Ad Choices
  • 条款
  • 帮助中心
  • 联系人上传和非用户
  • 设置
  • 动态记录

Meta © 2022

  • Compose là công cụ giúp định nghĩa và khởi chạy multi-container Docker applications.
  • Chỉ với một câu lệnh, ta có thể dễ dàng create và start toàn bộ các services phục vụ cho việc chạy ứng dụng.

  • Việc sử dụng Docker Compose được tóm lược trong 3 bước cơ bản sau:

  • Khai báo app’s environment với Dockerfile.
  • Khai báo các services cần thiết để chạy app trong docker-compose.yml.
  • Run docker-compose up và Compose sẽ start và run app.

1. Cài đặt

  • Install using pip
$ pip install docker-compose

Hoặc bạn có thể sử dụng cách khác:

  • Install as a container
$ curl -L https://github.com/docker/compose/releases/download/1.11.2/run.sh > /usr/local/bin/docker-compose $ chmod +x /usr/local/bin/docker-compose

2. Ví dụ chạy wordpress.

Chúng ta sẽ tạo ra 2 containers, 1 containers chứa mã nguồn wordpress và 1 containers chưa cơ sở dữ liệu mysql. Bằng cách định nghĩa trong file compose. Chỉ với 1 dòng lệnh khởi tạo, docker sẽ lập tức tạo ra 2 containers và sẵn sàng cho chúng ta dựng lên wordpress, một cách nhanh chóng.

  • Đoạn mã compose: Viết theo cú pháp YAML.
version: '2' services: db: image: mysql:5.7 volumes: - ./data:/var/lib/mysql restart: always environment: MYSQL_ROOT_PASSWORD: wordpress MYSQL_DATABASE: wordpress MYSQL_USER: wordpress MYSQL_PASSWORD: wordpress wordpress: depends_on: - db image: wordpress:latest ports: - "8000:80" restart: always environment: WORDPRESS_DB_HOST: db:3306 WORDPRESS_DB_PASSWORD: wordpress
  • version: '2': Chỉ ra phiên bản docker-compose sẽ sử dụng.
  • services:: Trong mục services, chỉ ra những services (containers) mà ta sẽ cài đặt. Ở đây, tạo sẽ tạo ra services tương ứng với 2 containers là db và wordpress.
  • Trong services db:
  • image: chỉ ra image sẽ được sử dụng để create containers. Ngoài ra, bạn có thể viết dockerfile và khai báo lệnh build để containers sẽ được create từ dockerfile.
  • volumes: mount thư mục data trên host (cùng thư mục cha chứa file docker-compose) với thư mục /var/lib/mysql trong container.
  • restart: always: Tự động khởi chạy khi container bị shutdown.
  • environment: Khai báo các biến môi trường cho container. Cụ thể là thông tin cơ sở dữ liệu.
  • Trong services wordpress:
  • depends_on: db: Chỉ ra sự phụ thuộc của services wordpress với services db. Tức là services db phải chạy và tạo ra trước, thì services wordpress mới chạy.
  • ports: Forwards the exposed port 80 của container sang port 8000 trên host machine.
  • environment: Khai báo các biến môi trường. Sau khi tạo ra db ở container trên, thì sẽ lấy thông tin đấy để cung cấp cho container wordpress (chứa source code).

  • Khởi chạy

root@adk:/opt/test/data# docker-compose up
  • Kết quả
root@adk:/opt/test/data# docker-compose ps Name Command State Ports -------------------------------------------------------------------------------- test_db_1 docker-entrypoint.sh mysqld Up 3306/tcp test_wordpress_1 docker-entrypoint.sh apach ... Up 0.0.0.0:8080->80/tcp root@adk:/opt/test/data# root@adk:/opt/test/data# docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 54cfd8a41b73 wordpress:latest "docker-entrypoint..." 7 minutes ago Up 7 minutes 0.0.0.0:8080->80/tcp test_wordpress_1 68460ffee3c4 mysql:5.7 "docker-entrypoint..." 7 minutes ago Up 7 minutes 3306/tcp test_db_1

3. Một vài chú ý:

  • dockerfile dùng để build các image.
  • docker-compose dùng để build và run các container.
  • docker-compose viết theo cú pháp YAML, các lệnh khai báo trong docker-compose gần tương tự với thao tác chạy container docker run.
  • docker-compose cung chấp chức năng Horizontally scaled, cho phép ta tạo ra nhiều container giống nhau một cách nhanh chóng. Bằng cách sử dụng lệnh
docker-compose scale name_service=5

Trong đó, name_service là tên services cần tạo container. 5 là số container sẽ được tạo ra.

References

  • https://viblo.asia/euclid/posts/DXOkRZYwkdZ
  • https://docs.docker.com/compose/wordpress/#define-the-project