Linux關閉防火牆命令
阿新 • • 發佈:2020-11-03
Docker
docker是容器化管理專案釋出環境的方案
為什麼使用Docker?(優點)
- 1.簡化專案釋出步驟
- 2.不同專案環境相互獨立
- 3.不需要額外安裝其他基礎庫
- 4.相容性好,跨平臺
Docker的目的
- 集裝箱:變革了人類整個生產流程,讓貨物全世界流通
- Docker:變革了IT領域的軟體交付方式,讓IT之間鴻溝消失
目標:簡化部署流程,提高生產力
Docker常用場景:
- 構建DevOps流程,實現運維的自動化
- 企業私有的PAAS平臺,降低開發成本,提升效率
- 企業級AppStore,統一的後端系統分發平臺
- 間歇式計算任務
- 構建微服務架構
核心概念:
- docker程序 docker daemon
- 客戶端 docker client
- Register docker遠端映象源
- 官網:docker hub
- 國內映象庫
- image 本地映象
- Containers 本地容器
docker 安裝軟體流程:docker pull 從遠端映象到本地映象,通過映象建立容器(執行的容器)
環境準備
-
準備一臺伺服器或在Linux虛擬機器中安裝
-
虛擬機器聯網
- 聯網方式:僅主機(主機和虛擬機器之間可通訊),橋連線,NAT(NAT和橋網段不同)
- IP地址介紹
Docker安裝
# 1.下載工具 sudo yum install -y yum-utils # 2.配置yum docker官網倉庫 sudo yum-config-manager \ --add-repo \ https://download.docker.com/linux/centos/docker-ce.repo # 3.安裝 等待 sudo yum install docker-ce docker-ce-cli containerd.io # 4.啟動 systemctl start docker systemctl enable docker # 5. 測試 docker version # 檢視版本 docker info # 檢視執行資訊 docker run hello-world # 執行測試映象 執行run之前,會自動檢查本地是否有該容器,如果沒有,自動pull遠端映象,build本地容器,再執行 # 其他指令 docker ps # 檢視所有正在執行的容器 docker images # 檢視
映象管理
docker 映象預設儲存docker hub 遠端映象庫中,可以配置國內映象
配置地址:
拉取映象:
docker pull 映象名:版本
# 獲取遠端redis5.0映象
docker pull redis:5.0
docker pull redis:latest # 預設是最後一個版本
# 查詢本地映象
docker images
# 搜尋映象redis search 映象名
docker search redis
# 刪除redis:latest映象(刪除映象前先刪容器)
docker rmi redis:latest
映象加速:
#使用騰訊雲dockerhub加速器適用於 Centos7 版本。 #修改 Docker 配置檔案 vi /etc/sysconfig/docker OPTIONS='--registry-mirror=https://mirror.ccs.tencentyun.com' systemctl restart docker
容器Container
容器是映象的一個執行例項
操作指令
# 建立
docker create -p 對外開放埠:容器內部軟體埠 --name 容器名 參考映象:映象版本
docker create -p 16379:6379 --name redis redis:5.0
# 執行容器
docker run -p 對外開放埠:容器內部軟體埠 --name 容器名 參考映象:映象版本
docker start 容器名或容器id
# 停止容器(2種)
docker stop 容器名或容器id
docker kill 容器名或容器id
# 檢視正在執行的容器列表
docker ps
# 檢視所有的本地容器
docker ps -a
# 刪除容器
docker rm 容器名或容器id
docker rm -f 容器名或容器id # 刪除正在執行的容器
docker rm -f $(docker ps -aq) # 刪除所有容器
# 進入容器
docker exec -it 容器名 /bin/bash
# 退出容器
exit 或 Ctrl+d
# 檢視容器執行日誌
docker logs -f 容器名 # -f表示實時日誌
Docker釋出django專案
檢視Docker安裝資訊
- 檢視Docker版本,命令:
docekr version
- 檢視Docker執行資訊,命名
docker info
- 檢測安裝是否正確,命令
docker run hello-world
新建django專案web01
下面的目錄結構是一個普通的django專案案例,專案名為web01,app名為product.
注意:專案根目錄建立了dockerfile,pip.conf, requirements.txt 三個檔案
- 新增專案依賴
首先我們需要把專案所依賴的包放到requirements.txt中:
PyMySQL==0.9.3
redis==3.2.1
request==2019.4.13
django==2.1.8
- 編寫Dockerfile檔案
這種映象建立方式會根據專案中提供的requirements.txt檔案自動pip安裝依賴包
FROM python:3.6.6
RUN mkdir -p /usr/src/app
WORKDIR /usr/src/app
COPY pip.conf /root/.pip/pip.conf
COPY requirements.txt /usr/src/app/
RUN pip install -r /usr/src/app/requirements.txt
RUN rm -rf /usr/src/app
COPY . /usr/src/app
CMD [ "python", "./manage.py", "runserver", "0.0.0.0:8000"]
說明:
FROM python3.6.6 指定Python版本
"0.0.0.0:8000" 指定開啟容器中8000埠,下面開啟容器就要對映到這個埠
-
pip.conf
這裡是為了使用映象 pip install 相關依賴,速度快的起飛 -
requirements.txt
PyMySQL==0.9.3
redis==3.2.1
request==2019.4.13
django==2.1.8
沒有必要逐一寫依賴,使用如下命令可把本地虛擬環境中的所有包生成到專案中
pip freeze > requirements.txt
-
專案上傳到雲伺服器(centos7)
不用再自己手動建立虛擬環境,因為docker會自動去下載依賴.
-
構建映象(預設從docker國外的遠端庫下載,速度很慢!一定先替換為國內的阿里軟體源! 替換步驟參考文章最後!)
# 注意後面的 . 不能省略
docker build -t my-django-web01:1.0 .
# 建立過程中會自動下載python3.6.6, 和所有依賴庫,而且速度非常快
- 開啟容器
# 或者 http://120.79.197.130:8000(埠號隨意對映,但要注意開啟對應安全組)
docker run -it --rm -p 8000:8000 --name djweb01 my-django-web01:1.0