dcoker 数据持久化---dcoker-compose使用

数据持久化:Data Volume

volume 关键字指定某一个容器里面,产生的数据—》让它挂载到linux主机上的某一个目录上面,创建一个叫做Data Volume的对象(VOLUME /var/lib/mysql)

运行一个mysql 的container :

docker run -d --name mysql1 -e MYSQL_ALLOW_EMPTY_PASSWORD=true mysql

MYSQL_ALLOW_EMPTY_PASSWORD 允许为空

查看容器:docker ps (查看日志:docker logs mysql1)

查看volumne : docker volume ls

删除volume: docker volume rm (id)

删除容器:docker rm mysql

查看volume 的详细情况:
dcoker 数据持久化---dcoker-compose使用_第1张图片

停止容器: docker stop mysql1 mysql2

删除容器: docker rm mysql1 mysql2

创建的volume的名字不是 很友好,太长了—>起别名代替

-v mysql:/var/lib/mysql

mysql 是本地的 /var/lib/mysql是container 的目录

docker run -d -v mysql:/var/lib/mysql --name mysql1 -e MYSQL_ALLOW_EMPTY_PASSWORD=true mysql(指imageID)

在这里插入图片描述
在这里插入图片描述

进入到容器mysql1里面:docker exec -it mysql2 /bin/bash ----> mysql -u root


-d后台运行
–name 命名名称

-v 映射数据的存储目录 本地的mysql-data : 运程/var/lib/mysql

-e 环境变量的设置 MYSQL_ROOT_PASSWORD=root 用户名和密码都是root

MYSQL_DATABASE要去创建的数据库

-p 曝露3360的端口映射到本地(不用做端口映射,不是供外人访问的。供wordpress这个容器访问的,wordpress 和 mysql 连到同一个dockerBridge 上面,他们的端口天然是可以访问的)

mysql :指定docker的Image —>mysql

创建一个mysql 的一个container:

docker run -d --name mysql -v mysql-data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=root -e MYSQL_DATABASE=wordpress mysql

查看运行的container : docker ps

第二步:创建一个wordpress的container

WORDPRESS_DB_HOST: 指定数据库DB的主机host (mysql:3306)

-p把wordpress的80端口映射到本地的8080端口

docker run -d -e WORDPRESS_DB_HOST=mysql:3306 --link mysql -p 8080:80 wordpress

第三步:浏览器输入127.0.0.1:8080 查看

问题:从dockerhub上拉下来的mysql 用不了

查看是否安装docker compose : docker -compose --version

docker-compose的安装:

sudo curl -L "https://github.com/docker/compose/releases/download/1.24.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose

启动一个docker-compose.yml 的文件: docker-compose up --help

docker-compose up 默认参数就是docker-compose.yml文件

或者指定文件:docker-compose -f docker-compose.yml up

docker-compose stop 停止 ;docker-compose start 开始;docker-compose ps 查看;

删除:docker-compose down

docker-compose up -d 后台运行

docker-compose images 例举出docker-compose所有的container,image

docker-compose exec 后面跟 的是service : eg. docker-compose exec mysql bash 进入mysql 里面; 进到wordpress里:docker-compose exec wordpress bash 进到wordpress container里面。

docker network ls 可以查看名字,与yum文件里面定义的名字不一样。

你可能感兴趣的:(Docker学习)