docker mysql data volume_Chapter5-Docker数据持久化之DataVolume与BindMounting

Chapter5-Docker数据持久化之Data Volume与Bind Mounting

## Docker Version

[vagrant@docker-node1 ~]$ docker version

Client: Docker Engine - Community

Version: 19.03.2

API version: 1.40

Go version: go1.12.8

Git commit: 6a30dfc

Built: Thu Aug 29 05:28:55 2019

OS/Arch: linux/amd64

Experimental: false

Server: Docker Engine - Community

Engine:

Version: 19.03.2

API version: 1.40 (minimum version

1.12)

Go version: go1.12.8

Git commit: 6a30dfc

Built: Thu Aug 29 05:27:34 2019

OS/Arch: linux/amd64

Experimental: false

containerd:

Version: 1.2.6

GitCommit: 894b81a4b802e4eb2a91d1ce216b8817763c29fb

runc:

Version: 1.0.0-rc8

GitCommit: 425e105d5a03fabd737a126ad93d62a9eeede87f

docker-init:

Version: 0.18.0

GitCommit: fec3683

## Data Volume

[vagrant@docker-node1 ~]$ docker pull mysql:5.7

[vagrant@docker-node1 ~]$ docker image ls

REPOSITORY TAG IMAGE ID CREATED SIZE

redis latest 01a52b3b5cd1 2 weeks ago 98.2MB

nginx latest f949e7d76d63 2 weeks ago 126MB

python 2.7 b707c2244b7d 4 weeks ago 886MB

mysql 5.7 383867b75fd2 4 weeks ago 373MB

busybox latest 19485c79a9bb 5 weeks ago 1.22MB

[vagrant@docker-node1 ~]$ docker volume ls

DRIVER VOLUME NAME

[vagrant@docker-node1 ~]$ docker run -d --name mysql1 -e

MYSQL_ALLOW_EMPTY_PASSWORD=true mysql:5.7

012b6c9f631221c28d92f62f0886a4338d94b9fbbb1251fc3a9a2f19ba0c107d

[vagrant@docker-node1 ~]$ docker volume ls

DRIVER VOLUME NAME

local 6473a31cb9bc919e7ec708ec407eea3209f959166996000bc5a3fa62e50f087a

[vagrant@docker-node1 ~]$ docker volume inspect

6473a31cb9bc919e7ec708ec407eea3209f959166996000bc5a3fa62e50f087a

[

{

"CreatedAt": "2019-10-13T12:05:05Z",

"Driver": "local",

"Labels": null,

"Mountpoint":

"/var/lib/docker/volumes/6473a31cb9bc919e7ec708ec407eea3209f959166996000bc5a3fa62e50f087a/_data",

"Name":

"6473a31cb9bc919e7ec708ec407eea3209f959166996000bc5a3fa62e50f087a",

"Options": null,

"Scope": "local"

}

]

[vagrant@docker-node1 ~]$ docker inspect mysql1 | grep

volume

"Type": "volume",

"Source":

"/var/lib/docker/volumes/6473a31cb9bc919e7ec708ec407eea3209f959166996000bc5a3fa62e50f087a/_data",

[vagrant@docker-node1 ~]$ docker run -d --name mysql2 -e

MYSQL_ALLOW_EMPTY_PASSWORD=true mysql:5.7

3d479bfb13024e49ada677b89ce9281375264ae89251a56f00fe63977af0fc80

[vagrant@docker-node1 ~]$ docker volume ls

DRIVER VOLUME NAME

local 35aa338747bf948b3c5929a2ba8cc8b08513f0e1657d9894752fe1d291466122

local 6473a31cb9bc919e7ec708ec407eea3209f959166996000bc5a3fa62e50f087a

[vagrant@docker-node1 ~]$ docker volume inspect

35aa338747bf948b3c5929a2ba8cc8b08513f0e1657d9894752fe1d291466122

[

{

"CreatedAt": "2019-10-13T12:06:55Z",

"Driver": "local",

"Labels": null,

"Mountpoint":

"/var/lib/docker/volumes/35aa338747bf948b3c5929a2ba8cc8b08513f0e1657d9894752fe1d291466122/_data",

"Name":

"35aa338747bf948b3c5929a2ba8cc8b08513f0e1657d9894752fe1d291466122",

"Options": null,

"Scope": "local"

}

]

[vagrant@docker-node1 ~]$ docker inspect mysql2 | grep

volume

"Type": "volume",

"Source":

"/var/lib/docker/volumes/35aa338747bf948b3c5929a2ba8cc8b08513f0e1657d9894752fe1d291466122/_data",

[vagrant@docker-node1 ~]$ docker rm mysql1 mysql2 -f

mysql1

mysql2

[vagrant@docker-node1 ~]$ docker ps -a

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES

[vagrant@docker-node1 ~]$ docker volume ls

DRIVER VOLUME NAME

local 35aa338747bf948b3c5929a2ba8cc8b08513f0e1657d9894752fe1d291466122

local 6473a31cb9bc919e7ec708ec407eea3209f959166996000bc5a3fa62e50f087a

[vagrant@docker-node1 ~]$ docker volume rm

35aa338747bf948b3c5929a2ba8cc8b08513f0e1657d9894752fe1d291466122

6473a31cb9bc919e7ec708ec407eea3

209f959166996000bc5a3fa62e50f087a

35aa338747bf948b3c5929a2ba8cc8b08513f0e1657d9894752fe1d291466122

6473a31cb9bc919e7ec708ec407eea3209f959166996000bc5a3fa62e50f087a

[vagrant@docker-node1 ~]$ docker volume ls

DRIVER VOLUME NAME

[vagrant@docker-node1 ~]$ docker run -d --name mysql1 -e

MYSQL_ALLOW_EMPTY_PASSWORD=true -v mysql:/var/lib/mysql

mysql:5.7

4090f100db6a4ffed864f39481b52fad4cec26b5c3e437ab74d81b1cb91f03f8

[vagrant@docker-node1 ~]$ docker volume ls

DRIVER VOLUME NAME

local mysql

[vagrant@docker-node1 ~]$ docker inspect mysql1 | grep

volume

"Type": "volume",

"Source":

"/var/lib/docker/volumes/mysql/_data",

[vagrant@docker-node1 ~]$ docker exec -it mysql1

/bin/bash

root@4090f100db6a:/# mysql

Welcome to the MySQL monitor. Commands end

with ; or \g.

Your MySQL connection id is 2

Server version: 5.7.27 MySQL Community Server (GPL)

Copyright (c) 2000, 2019, Oracle and/or its affiliates. All

rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or

its

affiliates. Other names may be trademarks of their

respective

owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current

input statement.

mysql> show databases;

+--------------------+

| Database |

+--------------------+

| information_schema |

| mysql |

| performance_schema |

| sys |

+--------------------+

4 rows in set (0.00 sec)

mysql> create database docker;

Query OK, 1 row affected (0.00 sec)

mysql> show databases;

+--------------------+

| Database |

+--------------------+

| information_schema |

| docker |

| mysql |

| performance_schema |

| sys |

+--------------------+

5 rows in set (0.00 sec)

mysql> exit

Bye

root@4090f100db6a:/# exit

exit

[vagrant@docker-node1 ~]$ docker ps

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES

4090f100db6a mysql:5.7 "docker-entrypoint.s…" 2 minutes ago Up 2

minutes 3306/tcp, 33060/tcp mysql1

[vagrant@docker-node1 ~]$ docker rm mysql1 -f

mysql1

[vagrant@docker-node1 ~]$ docker ps -a

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES

[vagrant@docker-node1 ~]$ docker volume ls

DRIVER VOLUME NAME

local mysql

[vagrant@docker-node1 ~]$ docker run -d --name mysql2 -e

MYSQL_ALLOW_EMPTY_PASSWORD=true -v mysql:/var/lib/mysql

mysql:5.7

2ad8482798cfe27d520290b4e3146d1e4ba2090ecca07074adbc136bc29f7409

[vagrant@docker-node1 ~]$ docker volume ls

DRIVER VOLUME NAME

local mysql

[vagrant@docker-node1 ~]$ docker exec -it mysql2

/bin/bash

root@2ad8482798cf:/# mysql

Welcome to the MySQL monitor. Commands end

with ; or \g.

Your MySQL connection id is 2

Server version: 5.7.27 MySQL Community Server (GPL)

Copyright (c) 2000, 2019, Oracle and/or its affiliates. All

rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or

its

affiliates. Other names may be trademarks of their

respective

owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current

input statement.

mysql> show databases;

+--------------------+

| Database |

+--------------------+

| information_schema |

| docker |

| mysql |

| performance_schema |

| sys |

+--------------------+

5 rows in set (0.00 sec)

mysql> exit

Bye

root@2ad8482798cf:/# exit

exit

## Bind Mounting

[vagrant@docker-node1 ~]$ cd chapter5/labs/docker-nginx/

[vagrant@docker-node1 docker-nginx]$ ls

Dockerfile index.html

[vagrant@docker-node1 docker-nginx]$ cat index.html

Hello Docker!

[vagrant@docker-node1 docker-nginx]$ cat Dockerfile

# this same shows how we can extend/change an existing

official image from Docker Hub

FROM nginx:latest

# highly recommend you always pin versions for anything beyond

dev/learn

WORKDIR /usr/share/nginx/html

# change working directory to root of nginx webhost

# using WORKDIR is prefered to using 'RUN cd /some/path'

COPY index.html index.html

# I don't have to specify EXPOSE or CMD because they're in my

FROM

[vagrant@docker-node1 docker-nginx]$ docker pull nginx

[vagrant@docker-node1 docker-nginx]$ docker image ls

REPOSITORY TAG IMAGE ID CREATED SIZE

sylor9527/flask-redis latest f7187b115207 6 days ago 891MB

redis latest 01a52b3b5cd1 2 weeks ago 98.2MB

nginx latest f949e7d76d63 2 weeks ago 126MB

python 2.7 b707c2244b7d 4 weeks ago 886MB

mysql 5.7 383867b75fd2 4 weeks ago 373MB

busybox latest 19485c79a9bb 5 weeks ago 1.22MB

[vagrant@docker-node1 docker-nginx]$ docker build -t

sylor9527/my-nginx .

[vagrant@docker-node1 docker-nginx]$ docker image ls

REPOSITORY TAG IMAGE ID CREATED SIZE

sylor9527/my-nginx latest 589c7ae397f9 4 hours ago 126MB

sylor9527/flask-redis latest f7187b115207 6 days ago 891MB

redis latest 01a52b3b5cd1 2 weeks ago 98.2MB

nginx latest f949e7d76d63 2 weeks ago 126MB

python 2.7 b707c2244b7d 4 weeks ago 886MB

mysql 5.7 383867b75fd2 4 weeks ago 373MB

busybox latest 19485c79a9bb 5 weeks ago 1.22MB

[vagrant@docker-node1 docker-nginx]$ docker run -d -p 80:80

--name web sylor9527/my-nginx

5d91dad7e3e58c0ea60134e4744c4e88804a3ba479cd6e353123207850266bae

[vagrant@docker-node1 docker-nginx]$ docker ps

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES

5d91dad7e3e5 sylor9527/my-nginx "nginx -g

'daemon of…" 4 seconds

ago Up 3 seconds 0.0.0.0:80->80/tcp web

[vagrant@docker-node1 docker-nginx]$ curl 127.0.0.1

Hello Docker!

[vagrant@docker-node1 docker-nginx]$ docker rm web -f

web

[vagrant@docker-node1 docker-nginx]$ docker ps -a

CONTAINER ID IMAGE COMMAND CREATED

STATUS PORTS NAMES

[vagrant@docker-node1 docker-nginx]$ docker run -d -p 80:80

--name web -v $(pwd):/usr/share/nginx/html

sylor9527/my-nginx da6fd32fc23bf008150474c04bf77d6b52694870168789f9fe914a35712109de

[vagrant@docker-node1 docker-nginx]$ docker exec -it web

/bin/bash

root@da6fd32fc23b:/usr/share/nginx/html# ls

Dockerfile index.html

root@da6fd32fc23b:/usr/share/nginx/html# touch test.txt

root@da6fd32fc23b:/usr/share/nginx/html# exit

exit

[vagrant@docker-node1 docker-nginx]$ ls

Dockerfile index.html test.txt

[vagrant@docker-node1 docker-nginx]$ vi test.txt

[vagrant@docker-node1 docker-nginx]$ sudo vi

test.txt

abc.txt

root@da6fd32fc23b:/usr/share/nginx/html# cat test.txt

abc.txt

root@da6fd32fc23b:/usr/share/nginx/html# exit

exit

[vagrant@docker-node1 docker-nginx]$

!!The End!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值