微服务#3 Docker常用命令

news2024/11/28 23:31:43

Docker

一.初识docker

Docker如何解决大型项目依赖关系复杂,不同组件依赖的兼容性问题?

  • Docker允许开发中将应用、依赖、函数库、配置一起打包,形成可移植镜像
  • Docker应用运行在容器中,使用沙箱机制,相互隔离

Docker如何解决开发、测试、生产环境有差异的问题?

  • Docker镜像中包含完整运行环境,包括系统函数库,仅依赖系统的Linux内核,因此可以在任意Linux操作系统上运行

Docker是一个快速交付应用、运行应用的技术:

  1. 可以将程序及其依赖、运行环境一起打包为一个镜像, 可以迁移到任意Linux操作系统
  2. 运行时利用沙箱机制形成隔离容器,各个应用互不干扰
  3. 启动、移除都可以通过一行命令完成,方便快捷 

Docker和虚拟机的差异:

  • docker是一个系统进程;虚拟机是在操作系统中的操作系统
  • docker体积小、启动速度快、性能好; 虚拟机体积大、启动速度慢、性能一般

Docker中的一些概念

镜像:

  • 将应用程序及其依赖、环境、配置打包在一起

容器:

  • 镜像运行起来就是容器,一个镜像可以运行多个容器

Docker结构:  

  • 服务端(Server):接收命令或远程请求,操作镜像或容器
  • 客户端(Client):发送命令或者请求到Docker服务端

DockerHub:

  • 一个镜像托管的服务器,类似的还有阿里云镜像服务,统称为DockerRegistry  

Docker基本操作

镜像(image)常用命令

  • docker images 查看当前镜像
  • docker rmi 删除镜像
  • docker pull 拉取镜像(没有指定版本的话,默认是最新的)
  • docker push 上传镜像
  • docker save 保存镜像
  • docker load 读取镜像

容器(container)常用命令

docker run: 创建并运行一个容器

docker run --name mn -p 8080:80 -d nginx

命令解读

  • --name: 给容器起一个名字,比如叫做mn
  • -p: 将宿主机端口与容器端口映射,冒号左侧是宿主机端口,右侧是容器端口
  • -d: 后台运行容器
  • nginx: 镜像的名称

docker exec: 进入容器执行命令

docker exec -it mn bash

命令解读:

  • -it: 给当前进入的容器创建一个标准输入、输出终端,允许我们与容器交互
  • mn: 要进入的容器的名称
  • bash: 进入容器后执行的命令,bash是一个linux终端交互命令

docker ps: 查看容器状态 (添加-a参数 查看所有状态的容器)

docker logs: 查看容器日志命令 (添加-f参数可以持续查看日志)

docker stop 容器名 : 停止容器

docker rm 容器名: 删除容器 (添加-f参数 可以删除运行中的容器)

数据卷(volume)常用命令

dorker volume[COMMAND]
docker volume命令是数据卷操作,根据命令后跟随的command来确定下一步的操作:

  • create  创建一个volume
  • inspect  显示一个或多个volume的信息
  • ls  列出所有的volume
  • prune  删除未使用的volume
  • rm  删除一个或多个指定的volume 

数据卷挂载

在创建容器时添加-v参数

docker run --name mn -p 8080:80 -v html:/usr/share/nginx/html -d nginx (注意:/usr/share/nginx/html 这个是官方提供的镜像中的html目录位置)

目录挂载

docker run \
> --name mysql \
> -e MYSQL_ROOT_PASSWORD=root \
> -p 3307:3306 \
> -v /tmp/mysql/conf/hmy.cnf:/etc/mysql/conf.d/hmy.cnf \
> -v /tmp/mysql/data:/var/lib/mysql \
> -d \
> mysql:5.7.25

镜像是分层结构,每一层称为一个Layer

  • Baselmage层:包含基本的系统函数库、环境变量、文件系统
  • Entrypoint:入口,是镜像中应用启动的命令
  • 其它:在Baselmage基础上添加依赖、安装程序、完成整个应用的安装和配置

Dockerfile就是一个文本文件,其中包含一个个的指令(Instruction),用指令来说明要执行什么操作来构建镜像, 每一个指令都会形成一层Layer

  • FROM   指定基础镜像   FROM centos:6
  • ENV   设置环境变量,可在后面指令使用   ENV key value
  • COPY   拷贝本地文件到镜像的指定目录   COPY ./mysql-5.7.rpm /tmp
  • RUN   执行Linux的sheLl命令,一般是安装过程的命令   RUN yum install gcc
  • EXPOSE   指定容器运行时监听的端口,是给镜像使用者看的   EXPOSE 8080
  • ENTRYPOINT   镜像中应用的启动命令,容器运行时调用   ENTRYPOINT java -jar xx.jar
# 指定基础镜像
FROM ubuntu:16.04
# 配置环境变量,JDK的安装目录
ENV JAVA_DIR=/usr/local

# 拷贝jdk和java项目的包
COPY ./jdk8.tar.gz $JAVA_DIR/
COPY ./docker-demo.jar /tmp/app.jar

# 安装JDK
RUN cd $JAVA_DIR \
 && tar -xf ./jdk8.tar.gz \
 && mv ./jdk1.8.0_144 ./java8

# 配置环境变量
ENV JAVA_HOME=$JAVA_DIR/java8
ENV PATH=$PATH:$JAVA_HOME/bin

# 暴露端口
EXPOSE 8090
# 入口,java项目的启动命令
ENTRYPOINT java -jar /tmp/app.jar

DockerCompose有什么作用?
帮助我们快速部署分布式应用,无需一个个微服务去
构建镜像和部署

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

在树莓派上搭建WordPress博客网站,并内网穿透发布到公网

✨个人主页:bit me👇 目 录 🐾概述💐安装 PHP🌸安装MySQL数据库🌷安装 Wordpress🍀设置您的 WordPress 数据库🌹设置 MySQL/MariaDB🌻创建 WordPress 数据库 &#x1f33…

pga_aggregate_limit和process关系

之前部署19c时,配置pga_aggregate_limit都是直接配置成0了,配置processes的大小也比较随意,上周维护一个客户安装的环境,重启数据库数据库时告警了,才第一次认真对面了 SYSorcl1> startup ; ORA-00093: pga_aggreg…

鼠标拆卸方法、鼠标按键噪声大解决办法(为按钮加润滑脂)

文章目录 今天我买了一款acer鼠标,发现按键声音有点大,想给它的按钮上一点缓冲脂,这个缓冲脂本来我是买来润滑机械键盘轴体用的,刚好也能用上。 这是我的鼠标外壳结构,我拆卸的时候没注意,给我拆坏了&…

SRP中的shader

SRP中的shader 在Unity中使用SRP时,我们需要使用HLSL来编写shader。HLSL语法与GLSL类似,在使用HLSL的地方我们需要用HLSLPROGRAM和ENDHLSL来包裹: Shader "My Pipeline/Unlit" {Properties {}SubShader {Pass{HLSLPROGRAM#pragma …

MySQL访问方法

访问方法(访问类型) Const 通过主键或者唯一二级索引来定位到唯一一条满足条件的数据的访问方法称为const。特别指出,如果主键中有两个列l1和l2,查询条件中只有l1的话访问方法就不是const,因为通过l1并不能确定唯一一条…

VisualStudio如何配置PCL点云库?

文章目录 0.引言1.准备PCL点云库2.VisualStudio相关设置3.配置PCL点云库4.测试PCL 0.引言 因笔者课题涉及点云处理,需要通过PCL进行点云数据分析处理,查阅现有网络资料,实现了VisualStudio2015(x86)配置PCL1.8.1点云库,本文记录实…

Python——pyqt-auto-tool自动化小工具(源码)

目录 一、演示视频 二、代码包 三、使用步骤 四、总结 一、演示视频 pyqt-auto-tool自己乱改的自动化小工具_哔哩哔哩_bilibili今天教资考试完,花半天自己乱改的自动化小工具pyqt-auto-tool,二开1、auto-tool原作者:https://www.bilibil…

学习通项目需要用到的

思路: 把长连接弄好课堂详细页面可以看到班级的所有学生,双击学生弹窗,可以确认从该课程中移除学生教师可以在班级详细页面通过输入学生的id,将学生加入该班级做好签到的页面,输入签到标题,选择签到的结束…

玩转计算机组成原理--指令系统

目录 一、机器指令 1.1指令的一般格式 1.操作码: 2.地址码 1.2指令字长 二、操作数类型和操作类型 2.1操作数类型 2.2操作类型 三、寻址方式(重要) 3.1指令寻址 1.顺序寻址 2.跳跃寻址 3.2数据寻址 1.立即寻址 2.直接寻址 3.隐含寻址 4.间接寻址 5.寄存器寻址 …

创作星-创意大爆发!AI文案生成器让创作轻松快捷,轻松撰写出热门标题。

一、创作星-创意大爆发!AI文案生成器让创作轻松快捷,轻松撰写出热门标题。 ✨使用“创作星”,让AI帮你生成惊艳的文案! ✨创意大爆发!AI文案生成器让创作轻松快捷,轻松撰写出热门标题。 ✨AI文案神器&…

【Linux指令④】Linux查看日历、时间、打包压缩文件、Linux中的计算器,常用热键 关机指令

Linux指令 ❀date❀cal❀findwhichwhereis ❀grep❀zip/unzip❀tar❀bc❀常用的热键❀关机🍀小结🍀 🎉博客主页:小智_x0___0x_ 🎉欢迎关注:👍点赞🙌收藏✍️留言 🎉系列专…

kubectl常用命令|pod生命周期|金丝雀发布|超详细

kubectl常用命令|pod生命周期|金丝雀发布|超详细 一 kubectl常用命令1.1 查看版本信息1.2查看资源对象简写1.3查看集群信息1.4 配置kubectl自动补全1.5node节点查看日志 二 k8s基本信息查看2.1 查看 master 节点状态2.2 查看命令空间2.3 创建和删除命名空间2.4 在命名空间kube-…

python读写json文件方法详解

在我们日常使用 Python时,经常会使用到 json文件。那么在平时写一些小程序时,如何使用 json文件呢?今天我将介绍如何读取和写入 Json文件。 json是一种数据结构,它是将字符串转换成数据的一种技术。使用 json可以非常方便的将一组…

在CentOS上安装Docker的步骤

在CentOS上安装Docker的步骤如下: 更新系统: sudo yum update 添加Docker官方存储库: sudo yum install -y yum-utils sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo sudo yum-config-manag…

FL 3D segment

HarmoFL:在异构医学图像联邦学习中协调本地和全局漂移 多个医疗机构联合使用联邦学习(FL)训练模型已成为最大化数据驱动模型潜力的有前途的解决方案,但医学图像中的非独立和非同分布(non-iid)数据仍然是实…

支付系统设计三:渠道网关设计03-参数验证

文章目录 前言一、参数校验1. MessageDescription内容2. 参数验证执行器3. 字段验证处理器4. 验证器工厂5. style校验器6. 验证器接口7. 长度校验器8. 枚举类型校验器9. yml配置9.1 deduct.yml9.2 style.yml 二、幂等校验总结 前言 在《支付系统设计三:渠道网关设计…

linux内核编译不通过问题的两种排查方法(非正式)

目录 一、前言 二、 问题现象 三、问题排查思路1:问题所在处向上排查 3.1 整体思路 3.2 排查过程 3.3 资料查询 3.4 尝试动作1:开启相应配置项 3.4.1 检查内核配置项 3.4.2 开启配置项 3.4.3 尝试编译 四、问题排查思路2:从上向下排…

讯飞星火大模型体验报告

近日,科大讯飞召开了星火认知大模型成果发布会,会上表示讯飞星火大模型将突破开放式问答,对标ChatGPT,在中文能力上超过ChatGPT,在英文能力上与ChatGPT相当。对此,你怎么看? 笔者准备给bing/ch…

数据结构第二天:File Transfer 【树的应用:集合】

原题是英文的:题目详情 - 05-树8 File Transfer (pintia.cn) 我用软件翻译了一下: 我们有一个计算机网络和一系列双向连接。这些连接中的每一个都允许文件从一台计算机传输到另一台计算机。有没有可能从网络上的任何一台计算机向其他计算机发送文件? Input Specif…

STM32 学习笔记_7 定时器中断:输出比较

输出比较 电机相关比较重要。 OC Output Compare(IC 是输入捕获,CC代指这两个单元),用于输出一定频率和占空比的PWM波形。 右下角四个就是CCR。只有通用计时器和高级计时器有,共用一个cnt计数器,高级计数…