linux:
yum install -y epel-release ##安裝倉庫
yum install docker-io ##安裝docker
chkconfig docker on ## 加入開機自動啟動
service docker start ## 啟動docker
docker hello world:
docker run hello-world
這個應用主要是乙個python的web服務,該服務用於統計使用者訪問量,使用者訪問量儲存在redis中。下面正式開始部署。
首先先寫乙個flask的python程式,主要的統計邏輯和前端展示都由這個檔案提供,**如下:
from flask import flask
from redis import redis, rediserror
import os
import socket
# connect to redis
redis = redis(host="redis", db=0, socket_connect_timeout=2, socket_timeout=2)## 連線redis
def hello():
try:
visits = redis.incr("counter") ##獲取計數器當前值並將其+1
except rediserror:
visits = "cannot connect to redis, counter disabled"
html = "" \
"hostname:
" \ "visits:"
return html.format(name=os.getenv("name", "world"), hostname=socket.gethostname(), visits=visits) ##網頁渲染
if __name__ == "__main__":
然後編寫python需要的依賴檔案requirements.txt。
redis
flask
最後寫出docker的部署檔案dockerfile:
# 將官方 python 執行時用作父映象
from python:2.7-slim
# 安裝 requirements.txt 中指定的任何所需軟體包
run pip install -r requirements.txt
# 使埠 80 可供此容器外的環境使用
expose 80
# 定義環境變數
env name world
完成之後開始構建,首先build映象:
其中 -t 的作用是指定映象的名字。
docker build -t bryantchangflasktest .完成構建後,接下來開始執行:
docker run -p 4001:80 bryantchangflasktest ##將4001埠對映到80埠
可以看到因為沒有配置redis所以這裡面的異常是我們預期內的,為了做後面的配置方便,我們將映象上傳到公共映象,命令如下:
docker build -t bryantchangxy/bryantchangflasktest .
docker push bryantchangxy/bryantchangflasktest:latest
涉及的一些常見命令:
docker build -t friendlyname .# 使用此目錄的 dockerfile 建立映象
docker run -p 4001:80 friendlyname # 執行埠 4001 到 80 的「友好名稱」對映
docker run -d -p 4001:80 friendlyname # 內容相同,但在分離模式下
docker ps # 檢視所有正在執行的容器的列表
docker stop # 平穩地停止指定的容器
docker ps -a # 檢視所有容器的列表,甚至包含未執行的容器
docker kill # 強制關閉指定的容器
docker rm # 從此機器中刪除指定的容器
docker rm $(docker ps -a -q) # 從此機器中刪除所有容器
docker images -a # 顯示此機器上的所有映象
docker rmi # 從此機器中刪除指定的映象
docker rmi $(docker images -q) # 從此機器中刪除所有映象
docker login # 使用您的 docker 憑證登入此 cli 會話
docker tag username/repository:tag # 標記 以上傳到映象庫
docker push username/repository:tag # 將已標記的映象上傳到映象庫
docker run username/repository:tag
docker stack ls # 列出此 docker 主機上所有正在執行的應用
注意,下面我不再繼續沿用那篇文件裡面的內容,我直接將flask和redis整合,並使用docker compose部署,部署檔案為docker-compose.yml,內容如下:
web:
build: .
ports:
- "4001:80"
volumes:
links:
- redis
redis:
image: microbox/redis
最後部署映象,命令如下:
docker-compose up -d
對於docker compose的使用,參見部落格《docker compose詳解》。 docker簡單使用
執行 docker d d 以bash方式執行容器並進入容器 docker run t i tomcat bin bash 進入容器後後開啟另乙個終端輸入 docker ps l 查詢該執行容器的containerid,拷貝檔案進入容器 以bash方式執行容器進入容器並且掛載宿主機目錄對映到容器 v...
docker簡單使用
docker是啥,類似於vmware,不解釋太官方的話。就是乙個程式,docker執行起來之後,他相當於就是乙個虛擬環境,他能輕鬆安裝各種軟體,比如mysql redis django等框架之類的,並且軟體安裝快捷方便,之間不會衝突。加一句,看看很快的,最多倆小時。再發一些簡單的docker操作命令...
Docker簡單使用
sudo apt install docker.iosystemctl start dockersystemctl stop dockersystemctl enable docker映象相關docker v docker search 關鍵字 例如 docker search tomcat doc...