目录
示例1:创建一个nginx容器,修改容器内的html目录内的index.html内容
示例2 创建并运行一个MySQL容器,将宿主机目录直接挂载到容器
1.镜像操作
- 镜像名称一般分两部分组成:[repository]:[tag]
- 在没有指定tag时,默认是latest,代表最新版本的镜像
命令模式:docker 操作 镜像名称
1.查看帮助文档
docker --help
2.查看某个操作的帮助文档
docker 操作 --help
如:
docker images --help 查看镜像帮助文档
docker save --help 查看保存帮助文档
示例1拉取镜像:
从DockerHub中拉取一个nginx镜像并查看
1.搜索
首先去镜像仓库搜索nginx镜像,比如DockerHub:
2.拉取
根据查看到的镜像名称,拉取自己需要的镜像,通过命令:docker pull nginx
3.查看
通过命令:docker images 查看拉取到的镜像
示例2将镜像导出,再加载回来
1.查看命令
利用docker xx --help命令查看docker save和docker load的语法
2.导出镜像
使用docker save导出镜像到磁盘
3.加载镜像
先删除,再使用docker load加载镜像
2.容器操作
命令模式:docker 操作 容器名称
示例1创建容器
创建运行一个Nginx容器
1.创建容器
去docker hub查看创建Nginx的容器并运行命令
docker run --name 容器名称 -p 80:80 -d nginx
docker logs -f mn 持续输出日志
2.停止容器
3.启动容器
4.暂停容器
5.解除暂停
6.删除容器
强制删除,不加-f要先停止再删除
示例2进入容器
1.进入容器
命令:
docker exec -it 容器名称 bash
2.进入目录
nginx的HTML所在目录 /usr/share/nginx/html
3.修改
index.html的内容
用欢迎您替换里面的Welcome to nginx
sed -i 's#Welcome to nginx#欢迎您#g' index.html
sed -i 's#<head>#<head><meta charset="utf-8">#g' index.html
4.退出容器
exit
3.数据卷操作
容器与数据耦合的
-
不便于修改
-
数据不可复用
-
升级维护困难
数据卷(volume)是一个虚拟目录,指向宿主机文件系统中的某个目录。 将容器与数据分离,解耦合,方便操作容器内数据,保证数据安全
命令模式:docker volume 操作
- create 创建一个volume
- inspect 显示一个或多个volume的信息
- ls 列出所有的volume
- prune 删除未使用的volume
- rm 删除一个或多个指定的volume
示例1 创建一个数据卷,并查看数据卷在宿主机的目录位置
1.创建数据卷
docker volume create html
2.查看所有数据
docker volume ls
3.查看数据卷详细信息
docker volume inspect html
4.删除所有未使用的volume
docker volume prune
5.删除一个或多个指定的volume
docker volume rm html
4.数据卷与容器挂载
示例1:创建一个nginx容器,修改容器内的html目录内的index.html内容
1.创建数据卷
docker volume create html
2.挂载数据卷
创建容器时通过 -v 参数来挂载一个数据卷到某个容器目录,如果数据卷不存在则自动创建
-v 数据卷名:容器目录路径
docker run --name mn -v html:/usr/share/nginx/html -p 80:80 -d nginx
3.查看数据卷
docker volume inspect html
4.修改
进入数据卷
在xhell点击启动xftp
即可直接进入目录
然后修改内容
示例2 创建并运行一个MySQL容器,将宿主机目录直接挂载到容器
语法:
1.获取mysql镜像
2.创建目录
利用xftp创建配置文件
3.运行mysql容器
docker run \
--name mysql \
-e MYSQL_ROOT_PASSWORD=123 \
-p 3306:3306 \
-v /root/mysql/conf/hmy.cnf:/etc/mysql/conf.d/hmy.cnf \
-v /root/mysql/data:/var/lib/mysql \
-d mysql:8.0.26