Docker的run流程

这篇具有很好参考价值的文章主要介绍了Docker的run流程。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

 run流程底层原理

Docker的run流程

Docker怎么工作?

VM和Docker结构对比

Docker的run流程

Docker为什么比VM虚拟机块?

1.Docker有比虚拟机更少的抽象层

2.docker利用的是宿主机的内核,vm需要是Guest OS

所以说,新建一个容器的时候,docker不需要像虚拟机一样加载一个系统内核,避免引导,虚拟机是加载Guest OS,分钟级别;而Docker是利用宿主机的操作系统,秒级

Docker的run流程

Docker的常用命令

帮助命令:

docker version;

docker info;

docker 命令 --help
#官方文档:docs下面的Reference

镜像命令:

查看镜像

Docker的run流程

 REPOSITORY    镜像的仓库源

TAG            镜像的标签

IMAGE ID      镜像的ID

CREATED    镜像的创建时间
Options:
  -a, --all            列出所有镜像
  -q, --quiet           只显示镜像的ID

搜索镜像:

docker search mysql --filter=STARS=5000

Docker的run流程

 下载镜像命令:

这个命令可以把mysql下载下来

docker pull mysql  #默认下载latest版本

dcker pull mysql:5.7  #下载指定版本,这个下载过程是分层下载的,所以如果前面下载过mysql 最新版,其实后面再下载其他版本有很多步骤因为重复的会直接找缓存就可以

删除镜像命令:

#通过镜像名称来删

#通过镜像ID来删一个镜像

docker rmi -f  镜像id      

#通过镜像ID来删多个镜像

docker rmi -f  镜像id       镜像id    镜像id   

#删除全部镜像

docker rmi -f $(docker images -aq)

容器命令:

说明:我们有了镜像才可以创建容器,下载一个centos来测试学习

docker pull centos

Docker的run流程

新建容器并进入容器

docker run [可选参数] image

Docker的run流程

#参数说明

--name="Name"  容器名字 如tomcat01,tomcat02,原来区分容器

-d      后台方式运行

-it       使用交互方式运行,进入容器查看内容

-p       指定容器端口如

(-p  ip:主机端口:容器端口

-p 主机端口:容器端口

-p 容器端口

例子:-p 8080:8080)

-P     随机指定端口

从容器退回主机

exit  #容器停止且退出

快捷键ctrl+p+q  #退出且容器不停止

列出运行中的容器

docker ps  #列出当前运行的容器

docker ps -a  #列出当前运行+历史运行过的的容器

docker ps -a -n=?   #列出最近运行的容器 

Docker的run流程

删除容器命令

docker rm 容器id   # 删除指定容器,但是不能删除正在运行中的容器

docker rm -f $(docker ps -aq)  #删除全部容器(包括正在运行的容器)

docker ps -a -q|xargs docker rm  #删除所有容器

启动和停止容器

docker start 容器id   #启动容器

docker restart 容器id  #重启容器

docker stop 容器id #停止当前正在运行的容器

docker kill 容器id  #强制停止当前容器

注意区分上面的 这3个命令:

Docker的run流程

 第1个指令:docker run -d centos

坑:centos是我们的容器,docker容器使用后台运行,就必须有一个前台进程,docker发现没有应用,就立刻自动停止;

常用其他命令

查看日志

docker logs -f -t --tail  容器,没有日志

自己编写一段shell脚本:docker run -d centos /bin/sh -c "while true;do echo lingchun;sleep 1;done"

显示日志

docker logs -tf --tail 10 容器ID

说明:

-tf    #显示日志

--tail number  #要显示日志条数

查看容器中的进程

docker top 容器ID

查看容器信息

docker  inspect 容器ID

进入容器中命令(run是创建并进入,exec是直接进入)

docker exec -it 容器ID /bin/bash

docker attach 容器ID

说明:

#docker exec 进入容器后开启一个新的终端,可以在里面操作(常用)

#docker attach  进入容器正在执行的终端,不会启动新的进程

#exit不会停止容器,而attach会停止进程

从容器内拷贝文件到宿主机上

docker cp 容器id:/home/待拷贝文件名  /home

###未来通过-v 卷 技术可以实现自动拷贝

Docker的run流程

 Docker的run流程Docker的run流程

 实战 部署Nginx

 docker pull nginx  #拉取镜像

docker images

docker run -d --name nginx01 -p 3344:80 nginx    #类似映射,通过公网的3344访问到docker的80端口

docker ps

curl localhost:3344

启动成功后在公网上访问:http://linux的ip:3344/  可以访问到nginx的页面,就标志着部署成功了

docker stop 容器id

如果报错记得Linux要开放端口3344

#进入容器

docker exec -it nginx01 /bin/bash

whereis nginx

cd /etc/nginx   #这里放了nginx.conf

ls

思考::

我们每次要改动nginx配置文件都需要进入容器内部?十分麻烦,我们要是可以在容器外部提供一个映射路径,达到在容器修改文件名,容器内部就可以自动更改,那就好了!

-v 数据卷!文章来源地址https://www.toymoban.com/news/detail-508012.html

到了这里,关于Docker的run流程的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【带你深挖计算机底层逻辑,带你认清CPU与主存之间的工作原理】

    计算机底层原理 文章目录 系列文章目录 前言 一、什么是主机 二、CPU 三、两类存储器 总结         带你深入理解计算机底层原理,为日后写出更健壮更安全更高效的代码打下坚实的基础,计算机硬件最底层的实现就如同建筑物的地基,清晰地掌握底层原理对大家将来编程

    2023年04月19日
    浏览(41)
  • docker的底层原理

    概述 :Docker的底层原理基于 容器化技术,通过使用命名空间和控制组等技术实现资源的隔离与管理 。 底层原理: 客户端-服务器架构 :Docker采用的是Client-Server架构,其中Docker守护进程(daemon)运行在主机上,并通过Socket连接接受来自客户端的命令和管理容器。 容器运行时

    2024年02月21日
    浏览(34)
  • Docker底层原理

    Docker的架构和组件包括Docker Engine、Docker CLI、Docker Image、Docker Container等 。 Docker采用的是C/S(Client-Server,客户端-服务器)架构,其中主要包含以下几个核心组件: Docker客户端(Client) :它是用户与Docker交互的界面,通过命令行工具(CLI)向Docker守护进程发送请求。 Docker守护

    2024年03月10日
    浏览(87)
  • docker的底层原理四: 资源隔离

    概述 :Docker 使用 Linux 内核的 Namespace 和 Cgroups 技术来实现资源隔离。这些技术保证了在宿主机上运行的每个 Docker 容器都是相互独立的,它们各自拥有自己的资源,并且不会互相干扰。以下是 Docker 资源隔离机制的一些具体细节: CPU 隔离 :通过 Cgroups 技术,Docker 可以对 C

    2024年02月20日
    浏览(39)
  • docker的底层原理三: 内核共享

    概述 :Docker 的容器运行时环境基于操作系统级虚拟化技术,其核心之一就是“内核共享”机制。当使用 Docker 容器时,以下是内核共享方面的底层原理和细节: 1. 内核空间与用户空间 内核空间 :在 Linux 系统中,内核空间包含操作系统的核心功能,例如进程调度、内存管理

    2024年02月21日
    浏览(35)
  • docker的底层原理,带你上天

    先查看当前机器上有哪些镜像 docker images 这里选看mysql的层级 docker image inspect mysql:5.7.29 命令。其中RootFS部分则是表示了分层信息。 因为这台机器的docker不是我安装的,所以不知道具体的根目录在哪里,可以使用下面的命令 docker info  上面可以看到docker的信息 Docker 的默认工作

    2024年02月03日
    浏览(35)
  • TCP/IP协议工作原理与工作流程

    使用OSI模型来描述一个网络中的各个协议层,如下: TCP/IP协议,英文全称Transmission Control Protocol/Internet Protocol,包含了一系列构成互联网基础的网络协议,是Internet的核心协议。TCP/IP协议是一个协议簇,包含了应用协议、传输协议、网际互联协议和路由控制协议。如下图: 应

    2024年04月25日
    浏览(46)
  • docker的联合文件系统 UnionFS《深入docker底层原理》

    docker最大的贡献就是定义了容器镜像的分层的存储格式,docker镜像技术的基础是联合文件系统(UnionFS),其文件系统是分层的。这样既可以充分利用共享层,又可以减少存储空间占用。 联合挂载系统的工作原理:读:如果文件在upperdir(容器)层,直接读取文件;如果文件不在u

    2024年02月13日
    浏览(50)
  • Docker圣经:大白话说Docker底层原理,6W字实现Docker自由

    现在 拿到offer超级难 ,甚至连面试电话,一个都搞不到。 尼恩的 技术社群 (50+)中,很多小伙伴凭借 “左手云原生+右手大数据”的绝活,拿到了offer,并且是非常优质的offer,据说年终奖都足足18个月。 而云原生的核心组件是 Docker + K8S,但是 Docker 又很难。在这里,尼恩从

    2023年04月08日
    浏览(45)
  • SpringBoot核心原理以及工作流程

    1. SpringBoot 概述 SpringBoot 是Spring的一套快速配置脚手架,快速的将一些常用的第三方依赖整合(原理:通过Maven子父工程的方式),简化xml配置,全部采用注解形式,内嵌web应用容器(如:jetty和Tomcat),最终以java应用程序进行执行 2. SpringBoot的启动类入口 2.1 @SpringBootApplicat

    2024年02月01日
    浏览(48)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包