Docker操作手册

本文详细介绍了Docker的镜像操作,包括从Docker Hub拉取镜像、保存和导入镜像。接着讲解了容器的创建与运行,以及相关命令。最后,重点阐述了数据卷的使用,包括如何创建、查看和挂载数据卷,以便于管理和更新容器内的文件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

一、镜像操作

1.拉取查看镜像

 1.根据查看到的镜像名称,拉取自己需要的镜像

2.拉取完成后,查看当前docker下的镜像

2.保存、导入镜像

1.利用docker save --help命令查看语法

2.利用docker save保存镜像到磁盘

 3.通过docker load将磁盘的tar包镜像加载到doker中

二、容器操作

1.容器相关命令

2.创建并运行一个容器

三、数据卷

1.案例分析

2.数据卷操作

1.基本语法

2.创建和查看数据卷

3. 容器不光可以挂载到数据卷,也可以挂载到宿主机上


一、镜像操作

1.拉取查看镜像

Docker Hub

需求:从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文件夹

打开可视化工具

部署完成!!! 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值