1. 程式人生 > >Docker容器(四)

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

在另一個會話,去升級應用的版本

在另一個會話,更改訪問埠