常用命令
docker run //创建并运行一个容器,-d 代表在后台工作
--name mysql //给容器起个名字
-p 3306:3306 //设置端口映射
-e KEY=VALUE //是设置环境变量
mysql:5.7 //指定运行的镜像名字和镜像版本
docker pull //从镜像仓库拉一个镜像到本地
docker ps //查看运行中的容器-a表示查看所有的容器
docker images //查看本地镜像
docker save //将镜像保存为tar到本地文件中
docker rmi //删除本地镜像
dockers load //上传镜像(将tar文件解压缩
docker run //创建一个容器
docker stop //停止一个容器
docker start //启动一个容器
docker logs //查看容器日志
docker exec //进入到一个容器中
docker rm //删除一个容器
数据卷
由图可知:在exec执行后进入容器内想要修改静态资源特别困难,因此引入数据卷解决修改静态资源等问题
创建数据卷,将容器内部的难以编辑的资源使用数据卷挂载到主机上,通过主机的修改同时也能映射到容器内部的资源,实现方便、快捷的修改资源
Docker的数据卷是用于在容器和主机之间共享数据的一种机制。通过使用数据卷,可以将数据从容器持久化到主机,这样即使容器被删除或重新创建,数据仍然可以保留。
使用数据卷的一些主要优点包括:
- 持久性:数据卷中的数据不受容器生命周期的影响,可以在容器之间共享和重用。
- 灵活性:可以将数据卷挂载到多个容器中,以实现数据的共享和协作。
- 性能:与容器内的普通文件系统相比,数据卷具有更好的性能,特别适用于频繁的读写操作。
- 备份和恢复:可以轻松备份和恢复数据卷中的数据,以保护重要数据不丢失。
创建和使用数据卷非常简单。可以使用docker volume create
命令创建一个数据卷,然后在启动容器时使用-v
选项将数据卷挂载到容器中(必须在启动之前挂载)。
docker volume create html //可以不需要,使用docker run 挂载时候如果没有会自动创建
docker run -d --name nginx -p 80:80 -v html:/usr/share/nginx/html nginx
docker volume inspect html //查看数据卷在本地的位置,并且修改以后可以直接映射到容器中
MySQL容器数据挂载
在执行 docker run
命令时,使用 -v 本地目录:容器内录
可以完成本地目录挂载。
本地目录必须以 "/" 或 "/" 开头,如果直接以名称开头,会被识别为数据卷而非本地目录。
v mysql:/var/lib/mysql
会被识别为一个数据卷叫 mysql。v ./mysql:/var/lib/mysql
会被识别为当前目录下的 mysql 目录。
docker run -d --name mysql -p 3306:3306 -e TZ=Asia/Shanghai -e MYSQL_ROOT_PASSWORD=123 -v /root/mysql/data:/var/lib/mysql -v /root/mysql/init:/docker-entrypoint-initdb.d -v /root/mysql/conf:/etc/mysql/conf.d mysql
挂载前分别要创建好mysql下,conf,init,data