Docker解析及轻量级PaaS平台演练(二)--Docker的一些简单命令

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: 版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq1010885678/article/details/46291047 上一篇中...
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq1010885678/article/details/46291047

上一篇中,我们对Docker有了一个基本的了解
下面将讨论Docker中Image,Container的相关实际操作

Image管理:

镜像的命名和版本管理:

普通镜像的命名规范
{namespace}/{repository}:{tag}

namespace是docker hub的用户名
repository是项目名称,如:Ubuntu,mysql等
tag表示版本信息,例如:cesc/mysql:5.5,tag是可选的,默认为latest

显示本地的images

docker images

我们可以通过docker命令从Docker Hub上拉取镜像回本地:

docker pull {image name}
//如果没有指定image的tag的话,会把该image的所有版本都下载下来

上传镜像:

docker login
//登陆到docker hub中

docker commit containerId
//将一个指定的Container打包成一个image,这时会返回一个临时的imageId(一大串)

docker tag imageId {namespace}/{repository}:{tag}
//根据imageId重命名image

docker push {namespace}/{repository}:{tag}
//push到docker hub

运行Container:

在Host看来,运行一个Container就是开启一个独立namespace进程而已

通过docker run命令来启动一个container,必须指定一个image作为初始化的文件系统

docker run [options] image[:tag] [commond][args]
//[options]表示一些运行参数
//如-t,表示后面用哪个image作为template
//-d,表示后台运行等

//[commond],表示可以输入一些linux命令 如ls等,作为container实际运行的首进程
//[args],表示上面的命令需要的参数,如-al

如果-t 后面的image不存在本地的话,会自动到docker hub上下载对应的image

docker run -d -t image[:tag]//-d让container运行在后台

docker run -a stdin//默认是运行在前台的,会将输入,输出和错误信息打印出来,通过-a来限制只有stdin,这样就看不到输出和错误信息了

docker attach containerId//将一个后台的container attach到前台

docker ps//查看当前的container,用法和linux中的ps类似

docker inspect containerId//获得指定container的所有信息

docker logs containerId//查看指定container的日志信息

网络设置:

Docker默认使用桥接的方式,如下图:

这里写图片描述

Host上对应每个Container都有veth{id}这样的虚拟网卡,对应每个Container里面的eth0,Host上的bridge负责将数据在各个veth中转发,以达到通信的目的

docker run -dt --net none image[:tag] 
//none关闭网络
//host使用主机网络栈,将不做veth映射
//container:{containerId}使用另外一个container的网络

端口映射:

docker通过端口映射的方式,能够将container内部的网络端口暴露到外部

docker run -dt -p 80:8000 image[:tag] 
//将内部的80端口暴露出来,外部可以通过8000访问到,如果没有指定外部对应的端口号,将会默认分配一个49000-49900之间的一个端口,可以通过docker ps来查看自动分配的端口

Volume绑定:

通过-v参数可以将Host上的一个目录绑定到container中,允许container对其进行读写

docker -dt -v /home/jchubby:/test image[:tag]
//将host上的/home/jchubby映射到container中的/test目录

环境变量设置:

既然container可以看成一个独立的os,那么肯定会有环境变量的设置

举一个例子来说明:
有两个container,a是提供数据库服务的,b是web应用,那么b要怎么才能知道a的主机ip,端口等信息,然后进行服务接入呢?

docker run --name mysql -dt image[:tag]
//通过--name为该container指定一个唯一的name

docker run --link mysql:db -dt image[:tag]
//通过link参数,可以将指定name(mysql)的container信息以环境变量的方式加到当前的container中,:db是mysql的别名

–link运行产生的环境变量结果如下:

这里写图片描述

如何进入Container:

每个Container都是一个独立的os,我们可以像操作VM虚拟机一样操作它

连接到Container有三种方式:

1、sshd
需要在Container中安装sshd服务,然后通过ssh连接即可(安全性不高)

2、nsenter
由linux提供,用来进入一个进程的namespace

docker inspect --format "{{.State.Pid}}" <container-id>
//首先要获得Container在host中的进程id

nsenter --target $pid --mount --uts --ipc --net --pid
//然后通过下面的命令进入Container

3、exec
是Docker新进入的一个命令,用来进入一个Container来运行一些指令

docker exec containerId commod args
相关文章
|
2月前
|
存储 算法 安全
.NET 平台 SM2 国密算法 License 证书生成深度解析
授权证书文件的后缀通常取决于其编码格式和具体用途。本文档通过一个示例程序展示了如何在 .NET 平台上使用国密 SM2 算法生成和验证许可证(License)文件。该示例不仅详细演示了 SM2 国密算法的实际应用场景,还提供了关于如何高效处理大规模许可证文件生成任务的技术参考。通过对不同并发策略的性能测试,开发者可以更好地理解如何优化许可证生成流程,以满足高并发和大数据量的需求。 希望这段描述更清晰地传达了程序的功能和技术亮点。
192 14
.NET 平台 SM2 国密算法 License 证书生成深度解析
|
2月前
|
Web App开发 数据采集 开发者
某查”平台请求头反爬技术解析与应对
某查”平台请求头反爬技术解析与应对
|
1月前
|
弹性计算 运维 安全
优化管理与服务:操作系统控制平台的订阅功能解析
本文介绍了如何通过操作系统控制平台提升系统效率,优化资源利用。首先,通过阿里云官方平台开通服务并安装SysOM组件,体验操作系统控制平台的功能。接着,详细讲解了订阅管理功能,包括创建订阅、查看和管理ECS实例的私有YUM仓库权限。订阅私有YUM仓库能够集中管理软件包版本、提升安全性,并提供灵活的配置选项。最后总结指出,使用阿里云的订阅和私有YUM仓库功能,可以提高系统可靠性和运维效率,确保业务顺畅运行。
|
3天前
|
存储 Kubernetes 调度
Kubernetes、Docker和Containerd的关系解析
总的来说,Docker、Containerd和Kubernetes之间的关系可以用一个形象的比喻来描述:Docker就像是一辆装满货物的卡车,Containerd就像是卡车的引擎,而Kubernetes就像是调度中心,负责指挥卡车何时何地送货。
36 12
|
5月前
|
运维 监控 负载均衡
探索微服务架构下的服务治理:动态服务管理平台深度解析
探索微服务架构下的服务治理:动态服务管理平台深度解析
|
1月前
|
监控 Shell Linux
Android调试终极指南:ADB安装+多设备连接+ANR日志抓取全流程解析,覆盖环境变量配置/多设备调试/ANR日志分析全流程,附Win/Mac/Linux三平台解决方案
ADB(Android Debug Bridge)是安卓开发中的重要工具,用于连接电脑与安卓设备,实现文件传输、应用管理、日志抓取等功能。本文介绍了 ADB 的基本概念、安装配置及常用命令。包括:1) 基本命令如 `adb version` 和 `adb devices`;2) 权限操作如 `adb root` 和 `adb shell`;3) APK 操作如安装、卸载应用;4) 文件传输如 `adb push` 和 `adb pull`;5) 日志记录如 `adb logcat`;6) 系统信息获取如屏幕截图和录屏。通过这些功能,用户可高效调试和管理安卓设备。
|
4月前
|
NoSQL Java Linux
《docker高级篇(大厂进阶):2.DockerFile解析》包括:是什么、DockerFile构建过程解析、DockerFile常用保留字指令、案例、小总结
《docker高级篇(大厂进阶):2.DockerFile解析》包括:是什么、DockerFile构建过程解析、DockerFile常用保留字指令、案例、小总结
365 76
|
3月前
|
运维 Shell 数据库
Python执行Shell命令并获取结果:深入解析与实战
通过以上内容,开发者可以在实际项目中灵活应用Python执行Shell命令,实现各种自动化任务,提高开发和运维效率。
124 20
|
3月前
|
网络协议 Unix Linux
深入解析:Linux网络配置工具ifconfig与ip命令的全面对比
虽然 `ifconfig`作为一个经典的网络配置工具,简单易用,但其功能已经不能满足现代网络配置的需求。相比之下,`ip`命令不仅功能全面,而且提供了一致且简洁的语法,适用于各种网络配置场景。因此,在实际使用中,推荐逐步过渡到 `ip`命令,以更好地适应现代网络管理需求。
114 11
|
4月前
|
人工智能 搜索推荐 API
Cobalt:开源的流媒体下载工具,支持解析和下载全平台的视频、音频和图片,支持多种视频质量和格式,自动提取视频字幕
cobalt 是一款开源的流媒体下载工具,支持全平台视频、音频和图片下载,提供纯净、简洁无广告的体验
734 9
Cobalt:开源的流媒体下载工具,支持解析和下载全平台的视频、音频和图片,支持多种视频质量和格式,自动提取视频字幕
下一篇
oss创建bucket