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

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

背景:

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

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

系統(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í)行,本人為了保險(xiǎn)起見執(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、驗(yàn)證docker是否安裝成功;

docker -v

檢查結(jié)果如下:

CentOS 7下使用docker-compose部署Django與MySQL實(shí)戰(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

二、編寫項(xiàng)目dockerfile文件

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

CentOS 7下使用docker-compose部署Django與MySQL實(shí)戰(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指定字符編碼,不指定時(shí),默認(rèn)使用的是lanti1編碼,在使用中文字符的時(shí)候會亂碼

四、修改項(xiàng)目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)容

五、編譯項(xiàng)目

docker-compose build

六、啟動項(xiàng)目

docker-compose up

docker-compose up -d(后臺運(yùn)行)

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

七、附錄

1、查看當(dāng)前docker容器中已有的image

docker image ls

2、查看所有的容器

docker ps -a

3、批量停止在運(yùn)行中的容器

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運(yùn)行項(xiàng)目后,首次需要去web容器里面手動執(zhí)行makemigrations、migrate、createsuperuser命令。

暫時(shí)不知道怎么處理,如有大神路過還望指點(diǎn)一二

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

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

贊(0)
分享到: 更多 (0)
網(wǎng)站地圖   滬ICP備18035694號-2    滬公網(wǎng)安備31011702889846號
久久国产乱子伦精品免费看| 国语自产精品视频| 国产精品嫩草影院AV| 亚洲国产成人精品无码区在线秒播 | 91精品天美精东蜜桃传媒入口| 亚洲精品国产精品乱码在线观看 | 国产成人精品视频一区二区不卡 | 国产精品久久自在自线观看| 亚洲国产精品久久久久婷婷软件 | 亚洲精品无码国产片| 国产精品合集一区二区三区| 亚洲国产精品成人综合久久久 | 精品国产日韩亚洲一区91| 国产v精品成人免费视频400条| 91嫩草亚洲精品| 69国产精品视频免费| 少妇精品无码一区二区三区| 久久国产精品免费网站| 久久99国产亚洲精品观看| 久久精品人人槡人妻人人玩| 精品乱人伦一区二区三区| 精品国产品香蕉在线观看75| 国产午夜福利精品一区二区三区| 7777久久久国产精品消防器材| 久久人人爽人人精品视频 | 国产精品大bbwbbwbbw| 久久久精品国产免大香伊| 久久精品国产亚洲AV忘忧草18| 久久精品国产亚洲AV忘忧草18 | 日韩精品免费一级视频| 日韩精品无码一区二区三区四区| 中文字幕日韩高清版毛片| 亚洲国产日韩在线视频| 亚洲av日韩av无码av| 亚洲性色AV日韩在线观看| 精品400部自拍视频在线播放| 四虎影院国产精品| 国产精品小黄鸭一区二区三区| 中文国产成人精品久久久| 亚洲精品成人网站在线观看| 久久精品加勒比中文字幕|