docker實戰系列之docker-compose

測試環境:騰訊雲,或者是華爲雲,在香港地區或者非中國大陸地區的機器. 這個快速入門指南演示瞭如何使用Docker Compose來設置和運行一個簡單的Django / PostgreSQL應用程序.python

1.安裝docker

(1)安裝docker的依賴包
yum install -y yum-utils device-mapper-persistent-data lvm2
(2)添加repo文件
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
(3)安裝docker,並啓動
yum -y install docker-ce
systemctl start docker
複製代碼

2.安裝docker-compose

(1)運行下面的命令,安裝穩定版的
curl -L "https://github.com/docker/compose/releases/download/1.24.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
要安裝不一樣版本的compose ,請替換1.24.0 爲要使用的compose版本
(2)對二進制文件應用可執行權限
chmod +x /usr/local/bin/docker-compose
(3)查看安裝的版本信息
docker-compose --version

另外一種安裝方法
pip install docker-compose
複製代碼

一:定義項目組件

對於此項目,須要先建立dockerfile,python依賴項文件和dockercompose.yml文件.linux

1.建立一個目錄
mkdir shijian
2.cd到shijian
3.在shijian目錄中建立一個文件Dockerfile  (注意開頭要大寫)
vi Dockerfile

將如下內容添加到Dockerfile
FROM python:3
ENV PYTHONUNBUFFERED 1
RUN mkdir /code
WORKDIR /code
COPY requirements.txt /code/
RUN pip install -r requirements.txt
COPY . /code/

保存退出
複製代碼
4.在shijian目錄中建立一個requirements.txt
vi requirements.txt

將如下內容添加到requirements.txt

Django>=2.0,<3.0
psycopg2>=2.7,<3.0

保存退出
複製代碼

5.在shijian目錄中建立docker-compose.yml ,該文件描述了構成應用程序的服務.這些服務是web服務器和數據庫,描述了它們如何連接在一塊兒,服務公開的端口.git

vi docker-compose.yml

將如下內容添加到文件中.

version: '3'

services:
  db:
    image: postgres
  web:
    build: .
    command: python manage.py runserver 0.0.0.0:8000
    volumes:
      - .:/code
    ports:
      - "8000:8000"
    depends_on:
      - db
保存退出.
複製代碼

二.建立Django項目.

1.cd到shijian目錄
2.經過運行docker-compose run命令建立Django項目.

docker-compose run web django-admin startproject composeexample .

這指示Compose django-admin startproject composeexample 使用web服務的圖像和配置在容器中運行。因爲web圖像尚不存在,所以Compose從當前目錄構建它,如build: .行中所指定的docker-compose.yml。

一旦web服務形象創建,撰寫運行它,並執行 django-admin startproject在容器命令。此命令指示Django建立一組表示Django項目的文件和目錄。

3.若是您在Linux上運行Docker,則django-admin建立的文件由root擁有。發生這種狀況是由於容器以root用戶身份運行。 更改新文件的全部權。

chown -R $USER:$USER .

4.ls -l 
複製代碼

三.鏈接數據庫

1.在shijian目錄中,編輯該composeexample/settings.py文件。
2.找到DATABASES 這一模塊,將它替換爲如下內容:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql',
        'NAME': 'postgres',
        'USER': 'postgres',
        'HOST': 'db',
        'PORT': 5432,
    }
}

保存退出

3.在shijian目錄中運行docker-compose  up -d 命令
4.此時在本機瀏覽器輸入 http://localhost:8000 就能夠查看到Django歡迎頁面.
複製代碼
相關文章
相關標籤/搜索