

docker run --name containerName -p 80:80 -d nginx
命令解读:
案例2:进入Nginx容器,修改HTML文件内容,添加“传智教育欢迎您”
步骤一:进入容器。进入我们刚刚创建的nginx容器的命令为:
docker exec -it mn bash
命令解读:
步骤二:进入nginx的HTML所在目录 /usr/share/nginx/html
cd /usr/share/nginx/html
步骤三:修改index.html的内容,这里用不了vi命令,容器中没有。
sed -i 's#Welcome to nginx#传智教育欢迎您#g' index.html
sed -i 's###g' index.html
案例三:创建并运行一个redis容器,并且支持数据持久化
步骤一:到DockerHub搜索Redis镜像
步骤二:查看Redis镜像文档中的帮助信息
步骤三:利用docker run 命令运行一个Redis容器
docker run --name redis -p 6379:6379 -d redis redis-server --appendonly yes

案例四:进入redis容器,并执行redis-cli客户端命令,存入num=666
步骤一:进入redis容器
docker exec -it redis bash

步骤二:执行redis-cli客户端命令
redis-cli

步骤三:设置数据num=666
set num 666

1. 容器与数据耦合的问题:

所以必须想办法解决容器与数据耦合的问题,所以就需要学习数据卷。
数据卷(volume)是一个虚拟目录,指向宿主机文件系统中的某个目录。

2. 数据卷的作用:
将容器与数据分离,解耦合,方便操作容器内数据,保证数据安全。
3. 数据卷操作:
案例1:创建一个数据卷,并查看数据卷在宿主机的目录位置
步骤一:创建数据卷
docker volume create html
步骤二:查看所有数据
docker volume ls

步骤三:查看数据卷详细信息卷
docker volume inspect html

4. 挂载数据卷:
我们在创建容器时,可以通过 -v 参数来挂载一个数据卷到某个容器目录。
例如:docker run --name mn -v html:/root/html -p 8080:80 nginx
案例1:创建一个nginx容器,修改容器内的html目录内的index.html内容
需求说明:上个案例中,我们进入nginx容器内部,已经知道nginx的html目录所在位置/usr/share/nginx/html ,我们需要把这个目录挂载到html这个数据卷上,方便操作其中的内容。
步骤:
docker run --name mn -v html:/usr/share/nginx/html -p 80:80 -d nginx
# 查看html数据卷的位置
docker volume inspect html
# 进入该目录
cd /var/lib/docker/volumes/html/_data
# 修改文件
vi index.html
ps: 如果容器运行时数据卷volume不存在,docker会帮我们自动创建出来。
5. docker run 挂载宿主机文件或目录到容器中:
目录挂载与数据卷挂载的语法是类似的: