目录
3.通过docker load将磁盘的tar包镜像加载到doker中
一、镜像操作
1.拉取查看镜像
需求:从DockerHub中拉取一个nginx-1.23镜像并查看
1.根据查看到的镜像名称,拉取自己需要的镜像
#docker pull 软件名称:版本号 如果不输入版本号默认是latest
docker pull nginx:1.23
2.拉取完成后,查看当前docker下的镜像
docker images
2.保存、导入镜像
需求:将nginx镜像导出到磁盘,然后再加载到docker中
1.利用docker save --help命令查看语法
docker save -o [保存的目标文件名称] [镜像名称]
2.利用docker save保存镜像到磁盘
docker save -o nginx.tar nginx:1.23
这时可以看到当前目录下出现了一个tar包,tar包就是刚刚我们保存好的镜像文件
3.通过docker load将磁盘的tar包镜像加载到doker中
先删除docker中的镜像:
#docker rmi 软件名:版本号 (只有在docker中的镜像才能使用rmi)
docker rmi nginx:1.23
再次执行docker images 查看docker中的镜像,如果找不到nginx镜像证明已经移除
如果已经移除,可以进行加载tar包操作:
docker load -i nginx.tar
再次执行docker images发现已经存在了nginx镜像,证明已经载入成功
二、容器操作
1.容器相关命令
-
docker run:创建并运行一个容器,处于运行状态
-
docker pause:让一个运行的容器暂停
-
docker unpause:让一个容器从暂停状态恢复运行
-
docker stop:停止一个运行的容器
-
docker start:让一个停止的容器再次运行
-
docker rm:删除一个容器
2.创建并运行一个容器
需求:创建并运行nginx-1.23
1.查看官方文档查看命令
docker run --name some-nginx -d -p 8080:80 some-content-nginx
#命令解读:
1.docker run : 创建并运行一个容器
2.--name : 给容器起一个名字
3.-p :将宿主机端口与容器端口映射,冒号左侧是宿主机端口(也就是对外提供服务的端口),右侧是容器端口
4.-d:后台运行容器
5.nginx:镜像名称,例如nginx:版本号
2.创建并运行nginx-1.23
docker run --name yuanNginx -d -p 8080:80 nginx:1.23
3.查看运行状态
启动完成后会随机分配一个容器id
可以通过docker ps -a 命令查看docker中容器运行的状态,下图证明nginx-1.23已经启动成功
4.在浏览器访问nginx,如果出现下图,证明启动成功
三、数据卷
1.案例分析
需求:修改nginx默认的页面(修改nginx中index.html页面)
在传统部署nginx的时候,我们只需要进入nginx的html目录下,通过vi编译器修改就可以了,但在docker中我们如何修改?
1.进入容器
docker exec -it yuanNginx bash
#命令解读:
1.docker exec : 进入容器内部,执行一个命令
2.-it : 给当前进入的容器创建一个标准输入、输出终端,允许我们与容器交互
3.yuanNginx : 要进入的容器的名称
4.bash : 进入容器后执行的命令,bash是一个linux终端交互命令
2.进入容器后,查看所有目录,并进入到nginx的html目录下(/usr/share/nginx/html)
3.通过vi编译器修改html文件,发现并不支持vi
4.现在可以发现容器内部没有编辑器,以后修改其他文件也很麻烦,这是因为容器与容器内文件耦合带来的后果,为了解决这个问题,就要用到数据卷了。
2.数据卷操作
数据卷(volume):
1.数据卷是一个虚拟目录,指向宿主机文件中的某一个目录
2.数据卷通过挂载来实现宿主机以及容器之间的通信,也就证明如果我修改数据卷中的配置(像传统方式进入目录通过vi编辑),那么在容器内也会生效。
1.基本语法
#查看帮助
docker volume --help
命令解读:
-
create 创建一个volume
-
inspect 显示一个或多个volume的信息
-
ls 列出所有的volume
-
prune 删除未使用的volume
-
rm 删除一个或多个指定的volume
2.创建和查看数据卷
1)创建数据卷
docker volume create html
2)查看所有数据卷
docker volume ls
3)查看数据卷详细信息
docker volume inspect html
4)挂载数据卷(如果要将数据卷挂载需要在启动时候指定)
docker run --name yuanNginx -v html:/usr/share/nginx/html -p 8080:80 -d nginx:1.23
#命令解读:
1.docker run : 创建并运行一个容器
2.--name : 给容器起一个名字
3.-v : 把html数据卷挂载到容器内的/usr/share/nginx/html这个目录中()
4.-p :将宿主机端口与容器端口映射,冒号左侧是宿主机端口(也就是对外提供服务的端口),右侧是容器端口
5.-d:后台运行容器
6.nginx:镜像名称,例如nginx:版本号
5)进入html数据卷所在位置,并修改HTML内容
# 查看html数据卷的位置
docker volume inspect html
# 进入该目录
cd /var/lib/docker/volumes/html/_data
# 修改文件
vi index.html
3. 容器不光可以挂载到数据卷,也可以挂载到宿主机上
已mysql5.7为例子
docker run \
--name yuanMySql \
-v /root/mysql/conf/my-deafult.cnf:/etc/mysql/conf.d/my-deafult.cnf \
-v /root/mysql/data:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=123456 \
-p 3306:3306 \
-d \
mysql:5.7.25
查看宿主机mysql中data文件夹
打开可视化工具
部署完成!!!