Docker的run流程

 底层原理

Docker怎么工作?

 

Docker为什么比VM虚拟机块?

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

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

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

 

Docker的常用命令

帮助命令:

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

镜像命令:

查看镜像

 REPOSITORY    镜像的仓库源

TAG            镜像的标签

IMAGE ID      镜像的ID

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

搜索镜像:

docker search mysql --filter=STARS=5000

 下载镜像命令:

这个命令可以把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 [可选参数] image

#参数说明

--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 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个命令:

 第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 卷 技术可以实现自动拷贝

 

 实战 部署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 数据卷!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/757.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

消息中间件中常见问题

如何保证消息不丢失 MQ的用途 异步发送(验证码,短信,邮件)MySQL,ES,Redis之间的数据同步分布式事务削峰填谷 消息可能丢失的环境 消息在产生端时候生产端挂掉,消息未到达交换机&#xff0c…

VS里拉取时候,变成变基中,变成分离分支状态,git 头指针分离于 baf67ff

分离头指针(detached HEAD) 通常,我们工作在某一个分支上,比如 master 分支。这个时候 master 指针和 HEAD 指针是一起前进的,每做一次提交,这两个指针就会一起向前挪一步。但是在某种情况下(例…

Revit中怎么画阶梯式旋转楼梯及生成桩

一、Revit中如何绘制阶梯式旋转楼梯 在楼梯的绘制过程中,如果采用(草图)楼梯的绘制方式,是没有办法将绘制的楼梯设置为阶梯式楼梯的,那么接下来我将采用构件的方式绘制阶梯式楼梯。 我们首先来看看阶梯式旋转楼梯和普通的旋转楼梯的区别&…

【C++】一些关于visual stdio,vscode,Mingw的思考 |bug

文章目录 今天在做YOLOV8的C部署时遇到的一些问题: 在进行一系列的操作之后会生成解决方案文件sln: 当然按道理到这一步之后,应该使用make命令进行下一步操作(但是我确实不会make命令,所以准备进sln来生成解决方案)&…

(0018) H5-VS Code保存后自动格式化Vue代码

安装插件Vetur 配置自动格式化,具体路径【文件】-【首选项】-【设置】,打开设置(json) 将以下内容复制到settings.json {// vscode默认启用了根据文件类型自动设置tabsize的选项"editor.detectIndentation": fals…

最新导则下生态环评报告编制技术暨报告篇、制图篇、指数篇、综合应用篇教程

详情点击链接:最新导则下生态环评报告编制技术暨报告篇、制图篇、指数篇、综合应用篇 一,生态环评报告编制规范 结合生态环境影响评价最新导则,详述不同类型项目生态环评报告编制要求与规范 二,土地利用图 1、土地利用分类体系…

免费可用的GPU

这里介绍两个可以免费使用GPU的地方。 百度飞桨AI Studio 百度飞桨AI Studio提供的BML Codelab环境可以免费使用GPU。并且百度飞桨AI Studio中也开源了很多项目。只需要运行感兴趣的项目就会自动将该项目fork到自己的项目列表中。后面可在个人中心“我的项目”中查看。每天运…

Flink CDC 2.4 正式发布,新增 Vitess 数据源,更多连接器支持增量快照,升级 Debezium 版本

Flink CDC 2.4 正式发布,新增 Vitess 数据源,更多连接器支持增量快照,升级 Debezium 版本 1. Flink CDC 简介2. Flink CDC 2.4 概览3. 详解核心特性和重要改进3.1 深入解读3.2 其他改进 4. 未来规划 1. Flink CDC 简介 Flink CDC [1] 是基于…

Kubernetes(k8s)容器编排Pod介绍和使用

目录 1 Pod 特点1.1 网络1.2 存储 2 使用方式2.1 自主式Pod2.2 控制器管理的Pod 3 自主运行Pod3.1 创建资源清单3.1.1 参数描述 3.2 创建Pod3.3 Pod操作3.3.1 查看Pod列表3.3.2 查看描述信息3.3.3 访问pod3.3.4 删除Pod 4 控制器运行Pod4.1 创建资源清单4.2 参数描述4.2.1 Repl…

windows 下安装 mysql-8.0.25 解压版

介绍 此文介绍 mysql-8.0.25-winx64 的 zip 解压版,在 windows 下的安装与配置过程。 官方下载 官网下载页: https://downloads.mysql.com/archives/community/ 进入官网,选择默认版本就行,不需要包含测试工具套件的版本 本地解…

R语言使用xlsx包、安装包的经验以及切换工作目录的方法

R语言使用xlsx包 首先不同于读取txt和csv文件,R语言读取xlsx文件需要安装xlsx包 使用下面命令进行安装xlsx install.packages(“xlsx”) 安装过程非常顺利,需要附带安装其它几个包。如果安装出现错误,可以尝试切换网络,使用手机热…

物通博联工业智能网关助力设备制造商实现远程监控维护

设备制造商是工业物联网的重要参与者,他们生产的设备广泛应用于各个行业领域,如机械、电力、化工、环保等。设备制造商面临着如何提高设备质量、降低运维成本、增强客户服务能力等挑战,需要借助工业物联网技术实现设备的远程监控维护&#xf…