docker 数据持久化

数据持久化

1.停止并删除之前的容器

docker数据持久化 mysql docker compose mysql 持久化_docker数据持久化 mysql

 2.数据持久化的方案

  • 绑定挂载的Volume:真实去存储数据,可以指定Volume位置(数据持久化)
  • dataVolume,指定一个共享目录(数据共享)

3.Volume

  • 创建并启动mysql,密码设置为空
  • 查看所有的valume
  • 查看volume详细信息,可以找到具体目录
  • 停止并删除了mysql容器   
  • 再次查看目录,数据持久化成功
  •  volume默认存储名字不太好看
  • 删除不被引用的volume
  • 创建容器,将容器中/var/lib/mysql目录下所有数据持久化

 

 

  停止并删除mysql1

docker数据持久化 mysql docker compose mysql 持久化_数据持久化_02

13.创建一个新的mysql容器,使用之前的volume进行数据恢复

docker数据持久化 mysql docker compose mysql 持久化_mysql_03

14.交互运行mysql,查看到数据已经恢复

docker数据持久化 mysql docker compose mysql 持久化_mysql_04

docker数据持久化 mysql docker compose mysql 持久化_数据持久化_05

bind mouting

指定一个与容器同步的目录,容器或者目录变化,变化的内容都会同步

1.创建并进入一个目录

docker数据持久化 mysql docker compose mysql 持久化_docker数据持久化 mysql_06

 

2.编辑一个文件

docker数据持久化 mysql docker compose mysql 持久化_mysql_07

 

3.编写Dockerfile

docker数据持久化 mysql docker compose mysql 持久化_docker数据持久化 mysql_08

 

4.构建image

docker数据持久化 mysql docker compose mysql 持久化_mysql_09

 

5.使用image启动容器

docker数据持久化 mysql docker compose mysql 持久化_docker数据持久化 mysql_10

 

6.目前还没有实现共享目录

 

7.开启并实现共享目录

docker数据持久化 mysql docker compose mysql 持久化_mysql_11

 

8.在容器里创建test.txt

docker数据持久化 mysql docker compose mysql 持久化_docker_12

 

9.本地修改文件,容器内文件内容也更改了

docker数据持久化 mysql docker compose mysql 持久化_mysql_13

docker部署wordpress

1.停止并删除之前的容器

docker数据持久化 mysql docker compose mysql 持久化_docker_14

2.将dockerHub上的mysql和wordpress拉取到本地,注意mysql下5.5的

docker数据持久化 mysql docker compose mysql 持久化_docker数据持久化 mysql_15

docker数据持久化 mysql docker compose mysql 持久化_docker数据持久化 mysql_16

3.若有latest版本,将之前的latest版本删掉

docker数据持久化 mysql docker compose mysql 持久化_docker_17

docker数据持久化 mysql docker compose mysql 持久化_数据持久化_18

4.将5.5版本标记为latest

docker数据持久化 mysql docker compose mysql 持久化_docker_19

5.创建mysql的容器

docker数据持久化 mysql docker compose mysql 持久化_数据持久化_20

6.创建wordpress容器

docker数据持久化 mysql docker compose mysql 持久化_docker数据持久化 mysql_21

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

docker数据持久化 mysql docker compose mysql 持久化_mysql_22

赋权限

docker数据持久化 mysql docker compose mysql 持久化_数据持久化_23

查看版本

docker数据持久化 mysql docker compose mysql 持久化_docker_24

编辑compose文件

docker数据持久化 mysql docker compose mysql 持久化_docker_25

#版本
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

docker数据持久化 mysql docker compose mysql 持久化_docker_26

停止并删除

docker数据持久化 mysql docker compose mysql 持久化_数据持久化_27

启动并后台运行

docker数据持久化 mysql docker compose mysql 持久化_mysql_28

更改service版本和端口

创建并查看网络

docker数据持久化 mysql docker compose mysql 持久化_docker_29

创建应用,使用nginx1.12版本

docker数据持久化 mysql docker compose mysql 持久化_mysql_30

写一个shell,不停访问curl 127.0.0.1

docker数据持久化 mysql docker compose mysql 持久化_docker数据持久化 mysql_31

在另一个会话,去升级应用的版本

docker数据持久化 mysql docker compose mysql 持久化_mysql_32

在另一个会话,更改访问端口

docker数据持久化 mysql docker compose mysql 持久化_docker数据持久化 mysql_33