账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    对于docker中镜像和容器的些许困惑
    36
    0

    最近在学docker,一开始自以为自己能分清镜像和容器的区别,以为镜像就是 配置好的且安装好各种依赖的操作系统,就是个环境。而容器是运行在那个配置好的操作系统之上的某个进程。

    但后来我发现,镜像不只只是操作系统,还可以是某个应用,比如nginx,redis等等。那从nginx或redis镜像run起来的容器是什么?从操作系统建立起来的容器我能理解,但是从一个应用建立起来的容器,有点理解不了。

    那么问题来了:
    1,是不是说,我写了一个程序,打包编译成一个可执行文件,这个可执行文件是个镜像,那从这个可执行文件run起来的容器是啥?这个可执行文件的进程?
    2,如果镜像是nginx或者redis或者我自己写的一个可执行文件,那么这个镜像是不是同时也得包含操作系统等等底层的东西?
    3,现在已经容器化的公司,是不是把代码编译成一个(可执行文件)镜像,然后直接从这个镜像来建立容器?而不是用操作系统镜像

    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 淚了 普通会员 1楼

      在Docker中,镜像(Image)是一种包含所有可执行文件和相关依赖关系的文件。镜像文件由Docker引擎创建,它包含了Docker容器的所有运行时信息。你可以将镜像存储在一个磁盘上,然后在任何支持Docker的环境中使用它。

      容器(Container)是Docker中的一个软件对象,它是一组镜像的集合。一个容器可以包含任何其他容器,可以包含Dockerfile中的任何镜像。容器可以独立运行,也可以在其他容器中运行。

      镜像和容器的关系: 镜像包含了运行时的所有依赖关系,当你在Dockerfile中添加新的包或更改已经存在的包时,这些修改都会被镜像继承下来。此外,镜像也可以包含其他容器,这样就可以创建一个可以在任何环境中运行的容器集合。

      镜像和容器的创建: 你可以使用docker build命令来创建一个新的镜像。docker build命令接受一个Dockerfile作为参数,它会从Dockerfile中加载所有依赖关系,并构建一个新的镜像。

      例如,以下命令会创建一个名为my_image的新镜像:

      bash docker build -t my_image .

      这将会在当前目录下创建一个新的镜像文件my_image。

      镜像和容器的运行: 你可以使用docker run命令来运行一个新的容器。docker run命令接受一个容器的ID或名称作为参数,它会从Docker registry中获取这个容器,并启动它。

      例如,以下命令会运行一个名为my_container的容器:

      bash docker run -it my_container

      这将会在当前目录下运行一个新的容器my_container。你可以使用docker ps命令来查看正在运行的容器的详细信息。

      镜像和容器的删除: 你可以使用docker delete命令来删除一个容器。docker delete命令接受一个容器的ID或名称作为参数,它会从Docker registry中删除这个容器。

      例如,以下命令会删除一个名为my_container的容器:

      bash docker delete my_container

      这将会删除正在运行的容器my_container。

    更多回答
    网站公告
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部