<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
docker是一種容器技術,用來創造獨立的軟體容器,屬於作業系統的虛擬化技術,隔離的程序獨立於宿主和其他隔離的程序。
虛擬機器器:需要有必要的二進位制庫和完整的作業系統,並且佔據所有預分配的資源。
docker容器:與宿主共用作業系統,可以實現資源的動態分配,在使用者空間以分離的程序執行
映象是檔案,容器是程序;他們之間的關係像是類和範例化物件的關係,一個類可以有多個範例化物件。而倉庫是一個其中的儲存、分發映象的服務。docker pull
是從倉庫下載docker映象到本地,docker run
是建立一個容器並執行一個命令,docker exec -it
是在執行的容器中執行命令
根據自己的系統選擇安裝方式docker安裝
1.簡單嘗試:使用docker pull nginx:latest
下載一個最新的nginx映象。
2.使用命令docker run --name my-nginx -p 80:80 -d nginx:latest
,建立一個容器,命令為my-nginx,-d
表示後臺執行並返回容器的ID,-p
將埠指定到宿主的80埠。開啟瀏覽器存取80埠
3.使用命令docker exec -it my-nginx bash
開啟一個互動模式終端
其中第一步不是必須,在執行docker run
命令時找不到映象時會自動從倉庫拉取
命令 | 作用 |
---|---|
docker pull | 從倉庫下載映象 |
docker images | 檢視所有本地映象 |
docker rmi | 刪除映象 |
docker run | 建立容器並執行命令 |
docker rm | 刪除容器 |
docker stop | 停止容器,同理還有restart、start |
docker logs | 檢視容器紀錄檔 |
docker exec bash | 進入容器中執行其他命令 |
嘗試部署最基本的django專案
建立django專案
命令列輸入django-admin startproject mysite
,進入建立的django資料夾中我們可以看見整個專案結構
此時我需要在專案根目錄下建立Dockerfile
檔案,該檔案用於生成docker映象,內容如下
# 建立 python3.7 環境 FROM python:3.7 # 映象作者 MAINTAINER LALALA # 設定 python 環境變數 ENV PYTHONUNBUFFERED 1 # 設定pip源為國內源 COPY pip.conf /root/.pip/pip.conf # 在容器內建立mysite資料夾 RUN mkdir -p /var/www/html/mysite # 設定容器內工作目錄 WORKDIR /var/www/html/mysite # 將當前目錄檔案加入到容器工作目錄中(. 表示當前宿主機目錄) ADD . /var/www/html/mysite # pip安裝依賴 RUN pip install -r requirements.txt
繼續在專案根目錄下建立pip.conf檔案,用於修改pip映象源
[global] index-url = https://pypi.tuna.tsinghua.edu.cn/simple [install] trusted-host=mirrors.aliyun.com
最後建立requirements.txt
檔案,因為只需要django,只需要安裝django即可
Django==3.2.12
專案內容設定完後,在專案根目錄輸入命令docker build -t django_docker_img:v1 .
建立映象,使用命令docker images
檢視映象,可以看見剛剛建立的映象
在Dockerfile
中第一行是from python:3.7
,也就是在建立過程中會從docker倉庫中拉取python:3.7
的映象,速度過慢的話請修改你的docker映象源,可以直接在docker介面處修改,https://b2bk1nge.mirror.aliyuncs.com
輸入命令docker run -it -d -p 80:8000 --name mysite django_docker_img:v1
建立並執行容器,此命名將該容器對映到本地80埠,使用docker ps
檢視執行情況。然後使用命令docker exec -it mysite bash
進入容器內部,會發現此刻處於Dockerfile
中設定的工作目錄,該目錄下內容即為專案檔案內容,pip已安裝requirement.txt
中的依賴
最後在容器的bash中執行下面命令,完成資料庫遷移和執行django專案
python manage.py makemigrations python manage.py migrate python manage.py runserver 0.0.0.0:8000 # 務必寫0.0.0.0,如果是127.0.0.1是容器的環回地址,會導致在宿主機中無法存取
此時在瀏覽器中存取http://127.0.0.1/
可以看到執行的django專案
本篇文章主要是嘗試性的使用docker來部署專案,學習過程中也是踩了一些坑,目前來看使用docker安裝映象很方便,之前在安裝需要的軟體時,往往會遇上各種各樣的小bug,而使用docker後只需要簡單地拉取映象建立容器,兩行命令解決所有煩惱。
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45