亚洲最大看欧美片,亚洲图揄拍自拍另类图片,欧美精品v国产精品v呦,日本在线精品视频免费

  • 站長資訊網(wǎng)
    最全最豐富的資訊網(wǎng)站

    CentOS 7下使用docker-compose部署Django與MySQL實戰(zhàn)

    背景:

    本萌最近在部署自己開發(fā)的項目的時候發(fā)現(xiàn)同一套代碼上傳到服務器上后,部分功能莫名其妙的有點問題,服務器的各項配置都沒有做過變動,所以想把項目轉(zhuǎn)戰(zhàn)到docker。

    奈何剛接觸docker,很多地方都不懂,在這個坑里面折騰了一兩天。決定對本次實踐做個過程總結(jié)希望少點人走彎路。

    系統(tǒng)環(huán)境:CentOS 7

    一、docker安裝

    1、以root用戶登錄(使用sudo命令也行,本人懶,不想敲那么多字符),刪除舊版本的docker;

    yum remove docker
                      docker-client
                      docker-client-latest
                      docker-common
                      docker-latest
                      docker-latest-logrotate
                      docker-logrotate
                      docker-selinux
                      docker-engine-selinux
                      docker-engine

    2、如果以前安裝過docker的,需要先刪除以前的docker文件;

    rm -rfv /var/lib/docker/

    3、安裝docker-ce(最新的系統(tǒng)可以不需要執(zhí)行,本人為了保險起見執(zhí)行了 ^0^);

    yum install -y yum-utils
      device-mapper-persistent-data
      lvm2

    4、下載docker-ce的yum源配置文件;

    yum-config-manager
        –add-repo
        https://download.docker.com/linux/centos/docker-ce.repo

    5、安裝docker-ce;

    yum install docker-ce

    6、設置docker-ce隨系統(tǒng)啟動;

    systemctl enable docker

    7、啟動docker;

    systemctl start docker

    8、驗證docker是否安裝成功;

    docker -v

    檢查結(jié)果如下:

    CentOS 7下使用docker-compose部署Django與MySQL實戰(zhàn)

     9、安裝docker-compose

    curl -L https://github.com/docker/compose/releases/download/1.20.1/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
    chmod +x /usr/local/bin/docker-compose

    二、編寫項目dockerfile文件

    在動手寫之前,先看下項目結(jié)構(gòu):

    CentOS 7下使用docker-compose部署Django與MySQL實戰(zhàn)

    編寫好的Dockerfile文件如下:

    FROM Python:3.6.4
    ENV PYTHONUMBUFFERED 1
    RUN mkdir /leartd
    RUN mkdir /leartd/dockermysql
    WORKDIR /leartd
    ADD requirements.txt /leartd/
    RUN pip install -r requirements.txt
    ADD . /leartd/

    三、編寫docker-compose.yml文件

    version: ‘3’
    services:
            db:
                    image: mysql
                    restart: always
                    command: mysqld –character-set-server=utf8mb4 –collation-server=utf8mb4_unicode_ci –init-connect=’SET NAMES utf8mb4;’ –innodb-flush-log-at-trx-commit=0
                    expose:
                            – “3306”
                    volumes:
                            – ./dockermysql:/var/lib/mysql:rw
                    environment:
                            – MYSQL_DATABASE=demodb
                            – MYSQL_ROOT_PASSWORD=123456
            web:
                    build: .
                    command: python manage.py runserver 0.0.0.0:9000 –insecure
                    volumes:
                            – .:/leartd
                    ports:
                            – “8080:9000”
                    depends_on:
                            – db

    command:執(zhí)行的命令內(nèi)容是為了給mysql指定字符編碼,不指定時,默認使用的是lanti1編碼,在使用中文字符的時候會亂碼

    四、修改項目settings.py文件配置

    修改地方有兩個,

    1、

    ALLOWED_HOSTS = [‘*’, ]

    2、

    DATABASES = {
        ‘default’: {
            ‘ENGINE’: ‘django.db.backends.mysql’,
            ‘NAME’: ‘demodb’,
            ‘USER’: ‘root’,
            ‘PASSWORD’: ‘123456’,
         ’HOST’: ‘db’,
        }
    }

    這里的NAME就是docker-compose.yml文件中的MYSQL_DATABASE,PASSWORD為docker-compose.yml文件中的MYSQL_ROOT_PASSWORD,HOST為docker-compose.yml文件第三行的內(nèi)容

    五、編譯項目

    docker-compose build

    六、啟動項目

    docker-compose up

    docker-compose up -d(后臺運行)

    在瀏覽器中輸入localhost:8080就可以成功訪問項目了

    七、附錄

    1、查看當前docker容器中已有的image

    docker image ls

    2、查看所有的容器

    docker ps -a

    3、批量停止在運行中的容器

    docker ps -a | grep ‘Up’ | awk ‘{print $1}’| xargs docker container stop

    4、批量刪除Exited狀態(tài)的容器

    docker ps -a | grep ‘Exited’ | awk ‘{print $1}’| xargs docker container rm

    5、批量刪除name為none的image

    docker image ls | grep none | awk ‘{print $3}’ | xargs docker image rm

    八、未完全解決的問題:

    通過docker-compose up運行項目后,首次需要去web容器里面手動執(zhí)行makemigrations、migrate、createsuperuser命令。

    暫時不知道怎么處理,如有大神路過還望指點一二

    九、需要后續(xù)處理的問題:

    搭建私有registry,把鏡像提交到私有的registry。

    贊(0)
    分享到: 更多 (0)
    網(wǎng)站地圖   滬ICP備18035694號-2    滬公網(wǎng)安備31011702889846號