我們 先來了解下 什么是docker?
Docker的思想來自於集裝箱,集裝箱解決了什么問題?在一艘大船上,可以把貨物規整的擺放起來。並且各種各樣的貨物被集裝箱標准化了,集裝箱和集裝箱之間不會互相影響。那么我就不需要專門運送水果的船和專門運送化學品的船了。只要這些貨物在集裝箱里封裝的好好的,那我就可以用一艘大船把他們都運走。
docker就是類似的理念。現在都流行雲計算了,雲計算就好比大貨輪。docker就是集裝箱。
1.不同的應用程序可能會有不同的應用環境,比如.net開發的網站和php開發的網站依賴的軟件就不一樣,如果把他們依賴的軟件都安裝在一個服務器上就要調試很久,而且很麻煩,還會造成一些沖突。比如IIS和Apache訪問端口沖突。這個時候你就要隔離.net開發的網站和php開發的網站。常規來講,我們可以在服務器上創建不同的虛擬機在不同的虛擬機上放置不同的應用,但是虛擬機開銷比較高。docker可以實現虛擬機隔離應用環境的功能,並且開銷比虛擬機小,小就意味着省錢了。
2.你開發軟件的時候用的是Ubuntu,但是運維管理的都是centos,運維在把你的軟件從開發環境轉移到生產環境的時候就會遇到一些Ubuntu轉centos的問題,比如:有個特殊版本的數據庫,只有Ubuntu支持,centos不支持,在轉移的過程當中運維就得想辦法解決這樣的問題。這時候要是有docker你就可以把開發環境直接封裝轉移給運維,運維直接部署你給他的docker就可以了。而且部署速度快。
3.在服務器負載方面,如果你單獨開一個虛擬機,那么虛擬機會占用空閑內存的,docker部署的話,這些內存就會利用起來。
總之docker就是集裝箱原理。
第一步先下載docker:
windows下docker的 地址,請點擊左邊的鏈接即可 ,提取碼4ydb
准備:
第一,把你的電腦的bios的虛擬開關打開,各個品牌的打開方法自己百度
第二,啟 windows 10 的 Hyper-V :控制面板 - 程序 - 啟用或關閉 windows 功能
注:只有win10的專業版才有此功能
第二步:
我們進行docker的配置,
這里可以設置docker的內存以及占用核數
我們可以將docker下載源 更改為 網易的 http://hub-mirror.c.163.com
ok 配置完畢 我們的小鯨魚開始起航了
開始:
去 Docker Hub 上拉取一個叫 hello-world 的集裝箱(說白了就是從網上拉下來)
docker pull hello-world
然后讓這個集裝箱跑起來:
docker run hello-world
查看本機所安裝的集裝箱
docker images
例子:把hello-world 鏡像保存在本地
docker save hello-world -o hellow-world.tar -o后面跟生成的路徑
刪除 鏡像:
docker rmi hello-world
查看正在運行的容器
docker ps -a
刪除所有的容器
docker rm docker ps -a -q
停止、啟動、殺死一個容器
docker stop Name/ID docker start Name/ID docker kill Name/ID
win10下 docker上安裝 fastdfs, 我的百度網盤上有 點擊下載 提取碼:id9t
docker load -i ⽂件路徑/fastdfs_docker.tar
1, 假如 我們的這個tar文件在桌面, docker load -i /C:/Users/Administrator/Desktop/fastdfs_docker.tar
接下來把 我們的小鯨魚共享磁盤設置,點擊確定后會彈出 輸入計算機密碼的的窗口,
2. 運⾏tracker
執⾏如下命令開啟tracker 服務
docker run -dti --network=host --name tracker -v /var/fdfs/tracker:/var/fdfs delron/fastdfs tracker
我們將 fastDFS tracker 運⾏⽬錄映射到本機的 /var/fdfs/tracker⽬錄中,注 在我們設置的共享磁盤下 建立這三層目錄,
3. 運⾏storage
執⾏如下命令開啟storage服務(/var/fdfs/storage 手動建立)
docker run -dti --network=host --name storage -e TRACKER_SERVER=10.211.55.5:22122 -v /var/fdfs/storage:/var/fdfs delron/fastdfs storage
注:TRACKER_SERVER=本機的ip地址,不是你的127.0.0.1,端口號設置22122
最后 我們來測試下 到底安裝好了沒有
docker images 查集裝箱
docker ps -a 查容器
下圖 代表你的應用正在運行中,
由於 fastdfs 在我們windows下 測試屢次出現問題,所有我們將項目轉移到虛擬機上,
ubuntu18.04虛擬機安裝docker
第一步:
sudo apt-get update
然后直接
sudo apt install docker.io
安裝完成之后 可以
docker version 查看版本
或者 docker -v
然后獲取鏡像
可以利⽤已有的FastDFS Docker鏡像來運⾏FastDFS。
獲取鏡像可以通過下載
sudo docker image pull delron/fastdfs
也可是直接使⽤提供給⼤家的鏡像備份⽂件
sudo docker load -i ⽂件路徑/fastdfs_docker.tar
成功之后可以
sudo docker image ls 查看鏡像
列出本機所有容器,包括已經終止運行的
sudo docker container ls --all
加載好鏡像后,就可以開啟運⾏FastDFS的tracker和storage了。
刪除鏡像
sudo docker image rm hello-world
創建容器
sudo docker run [option] 鏡像名 [向啟動容器中傳入的命令]
常用可選參數說明:
-i 表示以“交互模式”運行容器
-t 表示容器啟動后會進入其命令行。加入這兩個參數后,容器創建就能登錄進去。即 分配一個偽終端。
–name 為創建的容器命名
-v 表示目錄映射關系(前者是宿主機目錄,后者是映射到宿主機上的目錄,即 宿主機目錄:容器中目錄),可以使 用多個-v 做多個目錄或文件映射。注意:最好做目錄映射,在宿主機上做修改,然后 共享到容器上。
-d 在run后面加上-d參數,則會創建一個守護式容器在后台運行(這樣創建容器后不 會自動登錄容器,如果只加-i -t 兩個參數,創建后就會自動進去容器)。
-p 表示端口映射,前者是宿主機端口,后者是容器內的映射端口。可以使用多個-p 做多個端口映射
-e 為容器設置環境變量
–network=host 表示將主機的網絡環境映射到容器中,容器的網絡與主機相同
交互式容器
例如,創建一個交互式容器,並命名為myubuntu
sudo docker run -it --name=myubuntu ubuntu /bin/bash
2. 運⾏tracker
執⾏如下命令開啟tracker 服務
sudo docker run -dti --network=host --name tracker -v /var/fdfs/tracker:/var/fdfs delron/fastdfs tracker
我們將fastDFS tracker運⾏⽬錄映射到本機的 /var/fdfs/tracker⽬錄中。
執⾏如下命令查看tracker是否運⾏起來
sudo docker container ls
如果想停⽌tracker服務,可以執⾏如下命令
sudo docker container stop tracker
停⽌后,重新運⾏tracker,可以執⾏如下命令
sudo docker container start tracker
3. 運⾏storage
執⾏如下命令開啟storage服務
sudo docker run -dti --network=host --name storage -e TRACKER_SERVER=10.211.55.5:22122 -v /var/fdfs/storage:/var/fdfs delron/fastdfs storage
TRACKER_SERVER=本機的ip地址:22122 本機ip地址不要使⽤127.0.0.1
我們將fastDFS storage運⾏⽬錄映射到本機的/var/fdfs/storage⽬錄中
執⾏如下命令查看storage是否運⾏起來
sudo docker container ls
如果想停⽌storage服務,可以執⾏如下命令
sudo docker container stop storage
停⽌后,重新運⾏storage,可以執⾏如下命令
sudo docker container start
注意:如果⽆法重新運⾏,可以刪除/var/fdfs/storage/data⽬錄下的fdfs_storaged.pid ⽂件,然后
重新運⾏storage。
停止與啟動容器
停止一個已經在運行的容器
sudo docker container stop 容器名或容器id
啟動一個已經停止的容器
sudo docker container start 容器名或容器id
kill掉一個已經在運行的容器
sudo docker container kill 容器名或容器id
刪除容器
sudo docker container rm 容器名或容器id
將容器保存為鏡像
sudo docker commit 容器名 鏡像名
鏡像備份與遷移
我們可以通過save命令將鏡像打包成文件,拷貝給別人使用
sudo docker save -o 保存的文件名 鏡像名
sudo docker save -o ./ubuntu.tar ubuntu
在拿到鏡像文件后,可以通過load方法,將鏡像加載到本地
sudo docker load -i ./ubuntu.tar
我們的python環境中,需要安裝
安裝
安裝提供給⼤家的fdfs_client-py-master.zip到虛擬環境中
pip install fdfs_client-py-master.zip 本地下載
pip install mutagen
pip isntall requests
解壓后 cd到該目錄下
看截圖
執行 (注意虛擬環境的切換)
python setup.py install
把這個安裝包 安裝到你的環境中即可
下載 文檔 激活碼:ayzh我們可以打開 shell環境:
python manage.py shell
from fdfs_client.client import Fdfs_client client = Fdfs_client('meiduo_mall/utils/fastdfs/client.conf') client.upload_by_filename(文件名)
接下來看看上傳成功后的信息輸出
最后 在瀏覽器 輸入本地IP + 8888 +上面的紅框字符串 測試是否可以讀取上傳的信息