当前位置: 首页 > news >正文

docker run 命令详解

一、前言

Docker容器是一个开源的应用容器引擎,让开发者可以以统一的方式打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何安装了Docker引擎的服务器上(包括流行的Linux机器、Windows机器),也可以实现虚拟化。以下是Docker容器的特点:

  1. 沙箱机制:容器是完全使用沙箱机制,相互之间不会有任何接口(类似iPhone的app)。
  2. 性能开销小:几乎没有性能开销,可以很容易地在机器和数据中心中运行。
  3. 语言、框架、系统无关:最重要的是,容器不依赖于任何语言、框架包括系统。所以,需要通过设计和部署把这些服务拆分成为它们自己的容器。
  4. 扩展性:如果一个应用程序能够被拆分成为越多的分布式组件,那么应用程序扩展的选择则越多。
  5. 配置管理:企业用户可以把这些配置部署在容器中或使用环境变量。为了积极主动地关注基于容器的应用程序的运行状况,可考虑实施必要的监控和管理机制,确保打开日志记录功能。
  6. 命令行工具和API:Docker提供了一个命令行工具Docker以及一整套RESTful API。
  7. 架构:Docker采用C/S架构,Docker daemon作为服务端接受来自客户的请求,并处理这些请求(创建、运行、分发容器)。客户端和服务端既可以运行在一个机器上,也可通过socket或者RESTful API来进行通信

二、nginx docker run 命令详解

docker run -d \--name nginx \--net=host \-v /home/docker/apps/nginx/www:/usr/share/nginx/html \-v /home/docker/apps/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \-v /home/docker/apps/nginx/logs:/var/log/nginx \-v /home/docker/apps/nginx/conf.d:/etc/nginx/conf.d \-v /home/docker/apps/nginx/cert:/etc/nginx/cert \nginx

-d: 在后台以守护进程模式运行容器。
--name nginx: 为容器指定一个名称,可以进行自定义名称。
 
 -v /home/docker/apps/nginx/www:/usr/share/nginx/html \: 将主机上的 NGINX 配置文件目录挂载到容器中的usr/share/nginx/html目录,以便使用自定义的 NGINX 配置。

所以在nginx  location中只需要指向容器的路径,实际访问的就是主机的路径,他们是个映射关系,或者说是个代理关系

如:配合的是  /usr/share/nginx/html/member-plat  实际主机上 /home/docker/apps/nginx/wwwmember-plat 

   #静态资源location /icon/ {root /usr/share/nginx/html/member-plat;try_files $uri $uri/ /index.html;}


 docker run --name eureka_docker  -d -p 8861:8861 eureka_host

docker run --name eureka_docker  -d -p 8861:8861 eureka_host

所以这一段的意思是 运行主机上的 eureka_host  在容器中叫 eureka_docker  主机的  8861 映射 容器的 8861 ,通过主机的8861 实际访问的就是容器的 8861

三、DockerFile的使用

Dockerfile是一个用来构建镜像的文本文件,其中包含了一系列的指令和说明,这些指令和说明告诉Docker如何构建镜像。

Docker通过阅读Dockerfile中的指令代码来构建镜像文件。在Dockerfile中,可以使用多种指令来定义如何构建镜像,例如:

  1. FROM:指定基础镜像;
  2. RUN:在容器中执行命令;
  3. COPY:将文件从主机复制到容器中;
  4. ENV:设置环境变量;
  5. EXPOSE:声明容器将监听的端口;
  6. CMD:定义容器启动时执行的命令。

要创建一个Dockerfile,需要在项目目录中创建一个名为Dockerfile的文件,并在其中编写指令。编写Dockerfile的指令将按照文件中的顺序逐一执行。使用docker build命令可以构建镜像。

FROM java:8
VOLUME /tmp
ADD eureka.jar eureka.jar
EXPOSE 8861

相关文章:

  • 给Flutter + FireBase 增加 badge 徽章,App启动器 通知红点。
  • base64与BytesIO图片进行编码、解码;api调用
  • rk3566 armbian修复usb2.0并挂载U盘
  • Hadoop集群环境下HDFS实践编程过滤出所有后缀名不为“.abc”的文件时运行报错:java.net.ConnectException: 拒绝连接;
  • 数据分析-Pandas如何轻松处理时间序列数据
  • 【LeetCode:228. 汇总区间 | 区间】
  • 大模型学习之书生·浦语大模型4——基于Xtuner大模型微调实战
  • 开源加解密库之GmSSL
  • jenkins忘记密码后的操作
  • 网关Gateway
  • 机器学习笔记一之入门概念
  • (aiohttp-asyncio-FFmpeg-Docker-SRS)实现异步摄像头转码服务器
  • Python库学习(十四):ORM框架-SQLAlchemy
  • Jenkins-Pipeline语法总结大全
  • x-cmd pkg | trdsql - 能对 CSV、LTSV、JSON 和 TBLN 执行 SQL 查询的工具
  • [PHP内核探索]PHP中的哈希表
  • Android Studio:GIT提交项目到远程仓库
  • github从入门到放弃(1)
  • JAVA_NIO系列——Channel和Buffer详解
  • JS+CSS实现数字滚动
  • Mybatis初体验
  • Python学习之路13-记分
  • spark本地环境的搭建到运行第一个spark程序
  • Vue.js源码(2):初探List Rendering
  • 番外篇1:在Windows环境下安装JDK
  • 基于Javascript, Springboot的管理系统报表查询页面代码设计
  • 爬虫进阶 -- 神级程序员:让你的爬虫就像人类的用户行为!
  • 前端相关框架总和
  • 一个JAVA程序员成长之路分享
  • 原生JS动态加载JS、CSS文件及代码脚本
  • 运行时添加log4j2的appender
  • 智能合约Solidity教程-事件和日志(一)
  • 智能网联汽车信息安全
  • 转载:[译] 内容加速黑科技趣谈
  • 资深实践篇 | 基于Kubernetes 1.61的Kubernetes Scheduler 调度详解 ...
  • ​软考-高级-系统架构设计师教程(清华第2版)【第12章 信息系统架构设计理论与实践(P420~465)-思维导图】​
  • #include
  • #Linux(make工具和makefile文件以及makefile语法)
  • #我与Java虚拟机的故事#连载04:一本让自己没面子的书
  • (4)logging(日志模块)
  • (超详细)语音信号处理之特征提取
  • (二)PySpark3:SparkSQL编程
  • (附源码)springboot学生选课系统 毕业设计 612555
  • (七)微服务分布式云架构spring cloud - common-service 项目构建过程
  • (转)编辑寄语:因为爱心,所以美丽
  • (转)清华学霸演讲稿:永远不要说你已经尽力了
  • *上位机的定义
  • ./和../以及/和~之间的区别
  • .gitignore
  • .NET Framework 4.6.2改进了WPF和安全性
  • .net redis定时_一场由fork引发的超时,让我们重新探讨了Redis的抖动问题
  • .Net Remoting(分离服务程序实现) - Part.3
  • .NET 将混合了多个不同平台(Windows Mac Linux)的文件 目录的路径格式化成同一个平台下的路径
  • .NET的数据绑定
  • ??eclipse的安装配置问题!??