docker簡單使用

2021-09-29 20:41:56 字數 3147 閱讀 1524

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...