Docker容器(四)
docker 資料持久化
資料持久化
1.停止並刪除之前的容器
2.資料持久化的方案
- 繫結掛載的Volume:真實去儲存資料,可以指定Volume位置(資料持久化)
- dataVolume,指定一個共享目錄(資料共享)
3.Volume
- 建立並啟動mysql,密碼設定為空
- 檢視所有的valume
- 檢視volume詳細資訊,可以找到具體目錄
- 停止並刪除了mysql容器
- 再次檢視目錄,資料持久化成功
- volume預設儲存名字不太好看
- 刪除不被引用的volume
- 建立容器,將容器中/var/lib/mysql目錄下所有資料持久化
- 進入目錄,檢視資料
- 互動執行容器,進入mysql
- 建立database,退出mysql和容器
停止並刪除mysql1
13.建立一個新的mysql容器,使用之前的volume進行資料恢復
14.互動執行mysql,檢視到資料已經恢復
bind mouting
指定一個與容器同步的目錄,容器或者目錄變化,變化的內容都會同步
1.建立並進入一個目錄
2.編輯一個檔案
3.編寫Dockerfile
4.構建image
5.使用image啟動容器
6.目前還沒有實現共享目錄
7.開啟並實現共享目錄
8.在容器裡建立test.txt
9.本地修改檔案,容器內檔案內容也更改了
docker部署wordpress
1.停止並刪除之前的容器
2.將dockerHub上的mysql和wordpress拉取到本地,注意mysql下5.5的
3.若有latest版本,將之前的latest版本刪掉
4.將5.5版本標記為latest
5.建立mysql的容器
6.建立wordpress容器
7.通過瀏覽器訪問8080埠即可
思考問題:
用了mysql和wordpress兩個容器
步驟:下載20個image
執行20個容器
docker-compose介紹
多容器APP很難部署和管理,docker-compose類似於批處理,是一個命令列工具,docker-compose.yml
docker-compose裡重要的概念:Services Networks Volumes
Services:相當於container
Networks:相當於使用的網路
Volumes:資料持久化
docker-compose安裝和使用
下載docker-compose
賦許可權
檢視版本
編輯compose檔案
#版本
version: '3'
services:
wordpress:
image: wordpress
networks:
#版本
version: '3'
services:
wordpress:
image: wordpress
#版本
version: '3'
services:
wordpress:
image: wordpress
ports:
- 8080:80
environment:
WORDPRESS_DB_HOST: mysql
WORDPRESS_DB_PASSWORD: admin
networks:
- my-bridge
mysql:
image: mysql:5.5
environment:
MYSQL_ROOT_PASSWORD: admin
MYSQL_DATABASE: wordpress
volumes:
- mysql-data:/var/lib/mysql
networks:
- my-bridge
volumes:
mysql-data:
networks:
my-bridge:
driver: bridge
啟動compose
停止並刪除
啟動並後臺執行
更改service版本和埠
建立並檢視網路
建立應用,使用nginx1.12版本
寫一個shell,不停訪問curl 127.0.0.1
在另一個會話,去升級應用的版本
在另一個會話,更改訪問埠