当前位置: 首页 > ds >正文

Docker的基础操作

        docker是一个用Go语言实现的开源项目,可以让我们方便的创建和使用容器,docker将程序以及程序所有的依赖都打包到docker container,这样你的程序可以在任何环境都会有一致的表现,这里程序运行的依赖也就是容器就好比集装箱,容器所处的操作系统环境就好比货船或港口,程序的表现只和集装箱有关系(容器),和集装箱放在哪个货船或者哪个港口(操作系统)没有关系。

        在进行简单操作前需要认识什么是镜像,什么是容器?

Docker 镜像:用于创建 Docker 容器的模板,类似于虚拟机的镜像,可以理解为一个包含有完整文件系统的压缩包。镜像是只读的。

Docker容器:是独立运行的一个或一组应用,是镜像运行时的实体。容器运行在隔离的环境中,使用很少的资源就能运行起来。容器是可写的。


简单了解Docker后,Docker有以下基础操作:

搜索镜像:通过镜像名在Docker Hub官方仓库进行搜索,可以看到该镜像拥有的版本从而选择自己需要的版本。

docker search 镜像名

拉取镜像:通过拉取镜像可以将镜像从远程仓库中拉到本地仓库中,方便使用。在拉取镜像时可以选择国内多种镜像源,这样会大大提高拉取的速度和效率。

docker pull 镜像名:标签

为镜像打标签:通过给镜像打上便于理解的标签,可以更为方便使用,在镜像较多的时候也方便进行区分。

docker tag 原镜像名:原标签 自定义镜像名:自定义标签

查看镜像:可以看到拉取到的镜像以及其标签和ID等大概信息,方便创建容器时使用。

docker images
docker image ls

查看镜像信息:通过指定具体的镜像名,可以看到镜像的更为详细的信息。

docker history 镜像名:标签
docker inspect 镜像名:标签  #更为详细的信息

删除镜像:

docker rmi 镜像名:标签
docker rmi 镜像ID
docker images -f "dangling=true" #查看是否存在悬空镜像
docker image prune #删除悬空镜像

重启docker服务:在某些情况下,我们可能需要重启Docker服务,以便应用配置更改、释放内存或者解决服务故障。

systemctl daemon-reload
systemctl restart docker

保存镜像:部分自定义的镜像,为了方便后续使用或是共享,可以将镜像保存到宿主机上。

docker image save 镜像名:标签 -o 目标文件(通常为镜像名.tar.gz)
docker image save 镜像名:标签 > 目标文件

导入镜像:上一步我们进行了保存镜像的操作,同样也可以使用保存的文件进行导入到本地镜像仓库中。

docker image load -i 文件路径

创建容器:

docker create (参数) 镜像名:标签
参数:-i:交互模式-t:伪终端-d:后台运行-rm:使用后就自动删除

启动容器:容器仅仅是创建的话并不能正式使用,需要将容器进行启动。

docker start 容器名
docker start 容器ID

运行容器:相当于将创建容器和启动容器的步骤合为一步。

docker run (参数) 镜像名:标签
参数:-i:交互模式-t:伪终端-d:后台运行-rm:容器停止后自动删除-p:指定端口,格式为:宿主机端口:容器端口--name:容器名--network:指定容器使用的网络模式

查看容器:可以查看存在的容器。

docker ps  #正在运行的容器
docker ps -a  #所有容器,包括停止的容器

 查看容器信息:可以指定具体容器,查看更为详细的信息。

docker inspect 容器名/容器ID
docker stats 容器名/容器ID
docker logs 容器名/容器ID #日志信息

进入容器:

docker exec -it 容器ID /bin/bash(按情况而定,有些容器没有这个)
docker exec -it 容器ID ls(在容器执行的命令)

传输文件 :

docker cp 宿主机路径 容器名:文件路径
docker cp 容器名:文件路径 宿主机路径

停止容器:

docker stop 容器名/容器ID -t 等待时间
docker kill 容器名/容器ID

删除容器:

docker rm 容器名/容器ID
docker rm $(docker ps -qa -f status=exit)
docker container prune

以上就是docker的基础操作,不同的镜像创建出的容器可能存在些许差异。

http://www.xdnf.cn/news/5096.html

相关文章:

  • Nacos源码—7.Nacos升级gRPC分析四
  • GitHub 趋势日报 (2025年05月08日)
  • C++:书架
  • Windows Server 2025开启GPU分区(GPU-P)部署DoraCloud云桌面
  • Flink之Table API
  • PostgreSQL 表空间占用分析与执行计划详解
  • 考研英一学习笔记 2018年
  • 设计模式-命令模式
  • Ntfs!NtfsFillStandardInfo函数分析在scb和ccb中得到文件的标准信息
  • ai解释前端路由 hash或者History路由
  • Spring 必会之微服务篇(1)
  • 打造网络安全堡垒,企业如何应对DDoS、CC、XSS和ARP攻击
  • 《算法导论(第4版)》阅读笔记:p14-p16
  • 提升编程效率的利器:Zed高性能多人协作代码编辑器
  • [特殊字符]渲染 101 云渲染:C4D XP 粒子创作者的高效解算新方案
  • E2PROM的学习
  • 力扣刷题Day 45:旋转图像(48)
  • C语言中的文本读写和二进制读写接口
  • 软件工程之软件项目管理深度解析
  • Elasticsearch太重?它的超轻量的替代品找到了!
  • 【日撸 Java 三百行】Day 7(Java的数组与矩阵元素相加)
  • 计算机视觉——MedSAM2医学影像一键实现3D与视频分割的高效解决方案
  • 数图闪耀2025深圳CCFA中国零售博览会:AI+零售数字化解决方案引发现场热潮
  • 【2025最新】gitee+pycharm完成项目的上传与管理
  • “ES7+ React/Redux/React-Native snippets“常用快捷前缀
  • Vue 生命周期详解
  • com.fasterxml.jackson.dataformat.xml.XmlMapper把对象转换xml格式,属性放到标签<>里边
  • 部署Superset BI(四)连接sql server数据库
  • CNG汽车加气站操作工岗位职责
  • 2025医疗信息化趋势:健康管理系统如何重构智慧医院生态