2025年启动docker 镜像(docker 加载镜像 启动)

启动docker 镜像(docker 加载镜像 启动)docker 是我最近工程开发上急需使用的一个开发工具 但是由于本人 深入沉浸 windows 系统 并且对于 Linux 系统不太熟悉 所以学习 docker 很多困难 因此用这个博客来记录一下很简单的 docker 的常用操作 本文是以 Linux 系统为基础 windows 系统对于 docker 的安装太繁琐了 而且有 windows 版本的限制 强烈推荐使用 Linux 系统 本文参考了很多博主的经验分享

大家好,我是讯享网,很高兴认识大家。



  docker是我最近工程开发上急需使用的一个开发工具,但是由于本人“深入沉浸”windows系统,并且对于Linux系统不太熟悉,所以学习docker很多困难,因此用这个博客来记录一下很简单的docker的常用操作。本文是以Linux系统为基础,windows系统对于docker的安装太繁琐了,而且有windows版本的限制,强烈推荐使用Linux系统。本文参考了很多博主的经验分享,如果大家要看原文可以到本文底部查看原网站。有众多的docker命令行可以参看官方文档,我也在更新一些常用的docker命令的使用方式,有需要的同学可以查看我的这篇博文。

 

  安装docker的方式可以参看我上一篇博文。

  一般来说Linux安装好docker之后,就可以直接使用docker这个命令了,如果没有启动docker(守护进程)会出现以下命令报错:

  可以使用以下代码进入:

  其实一般说的关闭docker其实就是关闭docker的守护进程,一般来说可以不用管这个(我现在水平还不到探讨这个的水平)

  查看现有镜像:


讯享网

  其实可以看到返回了现有镜像的列表,下面来解读以下返回的内容:

  • REPOSITORY:“镜像所属的仓库名”,在仓库下会有很多版本的镜像,也就是一个仓库会包含多个镜像,而这里显示表示的是不同镜像属于那些仓库
  • TAG:“镜像的标签名”,在仓库中,不同的镜像是以标签的形式来区分的。一个REPOSITORY仓库名+TAG标签名,就构成了一个完整的镜像名,如:centos:7.02、ubuntu:14.04、debian:latest这个镜像名就会对应一个镜像的ID。我们之前在运行镜像时,通常只是指定了centos,并没有指定后面的TAG标签名,在这种情况下,docker会默认使用“latest”标签所对应的镜像。
  • IMAGE ID:“镜像的唯一ID”,常常可以使用这个来打开指定的镜像,因为TAG是可以重复的,但是ID是唯一的
  • CREATED:“镜像建立的时间”。
  • SIZE:“镜像建立的大小”。

  删除镜像有两种方法,一般是通过ID删除和通过TAG删除,刚才有提到TAG是可以重复的,对于同一个镜像可以有多个标签,所以如果采用指定标签的方法来删除镜像,只会删除你指定的REPOSITORY仓库名+TAG标签名的那个镜像。

  上面的命令就是删除hello-world这个仓库里的标签为latest的镜像。

  不过要注意到这样删除是不能删除正在被容器使用的镜像,例如有以下报错:

  这个时候可以使用 docker rmi -f hello-world:latest的命令强制删除,不过不推荐这样的方式,正确方法是:

  • 先删除引用这个镜像的容器(删除容器和查看容器的方法下面会讲到)
  • 再删除这个镜像

  对于Docker来说,image是静态的,类似于操作系统快照,而container则是动态的,是image的运行实例。因此启动镜像就需要创建容器。

  有一个image名称为ubuntu,那么比如现在我们启动这个image的container并且进入到这个container的bash命令行中:

  命令行的理解如下:

  • docker run:启动container(这种方式是基于镜像的启动,会创建一个新的容器)
  • ubuntu:你想要启动的image
  • -t:进入终端
  • -i:获得一个交互式的连接,通过获取container的输入
  • /bin/bash:在container中启动一个bash shell

  上图就是成功查创建了一个容器,并进入到了,容器的ID是2fa8d,这个时候容器就已经在运行了。

  如果要退出容器就直接在命令行输入 exit,就可以退出了。

  查看正在运行的容器

  

  可以看到我们之前运行的容器已经显示出来了(这个是在新窗口执行的命令行,原来的那个窗口没有exit容器),如果exit容器之后,用这个命令行就看不到。如果想要查看所有的容器,可以使用下面的命令行。

  可以看到就算退出容器之后依然有可以查看到对应的容器信息。

  • CONTAINER ID(container id ) :顾名思义 ,容器ID的意思,可以通过这id找到唯一的对应容器
  • IMAGE (image):该容器所使用的镜像
  • COMMAND (command):启动容器时运行的命令
  • CREATED (created):容器的创建时间,显示格式为”时间之前创建“
  • STATUS (status):容器现在的状态,状态有7种:created(已创建)|restarting(重启中)|running(运行中)|removing(迁移中)|paused(暂停)|exited(停止)|dead
  • PORTS (ports): 容器的端口信息和使用的连接类型(tcp/span>
  • NAMES (names): 镜像自动为容器创建的名字,也唯一代表一个容器

  刚才提到了在删除镜像以前,需要先删除引用着的容器,我们可以使用以下的命令行来进行。我们先看下有哪些容器存在。

  然后使用docker rm dockerID的方法删除。

  可以看到已经刚才存在的容器已经没有了,当然还有更多高级的删除容器的方法,可以参考(https://www.cnblogs.com/wholj/p/10396516.html)

  对于镜像来说,每次进入镜像(容器)并且操作镜像里的内容之后,如果直接使用exit退出容器,是不会保存你的操作的(也就是说重新加载dockerrun -t -i xxxx /bush镜像之后,一切内容都会重新来)。如果我们想要保存我们的操作该怎么办呢?下面我们启动之前创办的ubuntu的系统,并在ubuntu系统里安装vim编译器,并保存。

  启动ubuntu系统,如果没有指定:TAG,会启动TAG为latest的镜像

  可以看到这个容器里面并没有vim编译器

  接下来我们在这个容器安装vim编译器(具体细节参看我之前的博文Linux中安装vim编译器),具体就是两行命令行。安装完成之后命令行键入vim之后可以看到

  好了这个系统已经被更改了,接下来是把这个系统(容器)打包成镜像保存(换句话说就是没有办法更改原来的镜像的,但是可以保存修改后的容器为另一个镜像的方法来保存),主要的命令是

  上面这个命令就是docker commit 容器ID ubuntu:2.0(这里这个镜像新的TAG)。

    可以看到出现这个界面就说明已经保存成功了(主要到这个命令行以一定要在新的窗口中执行,不是在容器中执行这个储存命令行)

  最后我们可以看看我们刚刚新创建的镜像。

  可以看到我们的ubuntu:2.0镜像已经创建好了。如果我们进入ubuntu:2.0可以发现vim已经被安装好了。

    我们已经学会修改以及保存镜像,那我们会问那些下载到本地的镜像在哪里呢?我是一个对空间要求极高的人,在可以的情况下我希望知道所有的东西都放在哪里,因此无论安装什么包我都希望知道它的具体路径并设置好(特别是这种需要频繁下载东西的软件)。我们可以通过一下命令来查看。

  着张图片显示出来docker的信息,其中我们需要注意到的是:Docker Root Dir: /var/lib/docker,这就是docker镜像的存储路径(镜像的名字是不会显式的写在文件夹上的,具体的对应关系可以参看这篇博文)。

  接下来是我们需要知道该如何更改这个路径,比如把这些镜像放到另一个分区里面。

  1、把/var/lib/docker这个文件夹下的所有内容移动到另一个文件夹下,比如我这里移动到/data/docker这个文件里。

  2、修改配置文件,更改docker中镜像和容器的默认储存位置。(注意,刚安装docker的需要新建这个文件)

  3、将文件中’data-root’,改为‘data-root’:‘/home/data/docker’

  4、重启docker服务

 

 

 

参考网址:

https://www.cnblogs.com/520yang/articles/8744454.html

https://blog.csdn.net/woshimeihuo/article/details/

https://blog.csdn.net/acmman/article/details/

https://www.cnblogs.com/quanxiaoha/p/10542278.html

https://www.cnblogs.com/linjiqin/p/8608975.html

https://www.cnblogs.com/luengmingbiao/p/14742396.html

小讯
上一篇 2025-04-30 11:00
下一篇 2025-05-03 20:46

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/138540.html