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

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

        背景:

        本萌最近在部署自己開發(fā)的項目的時候發(fā)現(xiàn)同一套代碼上傳到服務(wù)器上后,部分功能莫名其妙的有點問題,服務(wù)器的各項配置都沒有做過變動,所以想把項目轉(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、設(shè)置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號
        主站蜘蛛池模板: 中文字幕亚洲精品资源网| 中文字幕精品一区二区日本| 97人妻无码一区二区精品免费| 久久久精品国产亚洲成人满18免费网站| 精品无码人妻一区二区免费蜜桃| 久久久久亚洲精品男人的天堂| 国产亚洲精品一品区99热| 亚洲国产精品国自产拍AV| 国产三级国产精品国产普男人| 国产成人精品久久二区二区| 无码精品一区二区三区在线| 精品午夜国产人人福利| 亚洲国产综合精品中文第一区| 国产精品一区二区av| 亚洲国产一二三精品无码| 久久www免费人成精品香蕉| 91精品国产高清久久久久久91| 2018国产精华国产精品| 婷婷国产成人精品视频| 最新国产成人精品2024| 午夜三级国产精品理论三级 | 国产成人精品精品欧美| 欧美精品VIDEOSSEX少妇| 亚洲人成国产精品无码| 久久久久无码精品国产app| 精品欧美激情在线看| 国产农村妇女毛片精品久久| 中文字幕亚洲精品资源网| 亚洲国产精品久久久久久| 精品无人区麻豆乱码1区2区| 999成人精品视频在线| 69久久夜色精品国产69| 国产精品久久久天天影视| 九九热这里只有在线精品视| 国产精品久久久久久久久鸭| 精品国产免费一区二区三区| 国产精品无码久久综合网| 国产精品免费视频观看拍拍| 国产精品亚洲精品日韩已方| 国产精品内射婷婷一级二| 精品无码三级在线观看视频|