【docker】运行一个container

news2024/11/13 11:20:05

最近打算再深入玩玩docker,又回来学一学。

笑死4,5月还在开开心心玩docker,现在一看docker hub直接上不去了。
弄了半天,我还以为我的网络dns又出什么问题了,一看,镜像全给拆啦,哈哈哈哈。😅😅😅😅

插入点,我是发现一直用不了docker search 我以为网络有什么问题。
后面发现就别用docker search了,无论你怎么弄镜像就是搞不定的,墙直接封死了docker hub,search应该是默认去hub上面找的,所以search不到不代表镜像出什么问题了。
只要弄了镜像,能够pull就行。

docker

简单回顾什么是docker:最核心的概念,集装箱
一个涵盖了运行环境➕具体的软件需求。
以mysql举例,需要运行mysql,最简单的就是:相关的linux内核(运行环境)➕mysql软件(需求)
所以简单一点理解,docker一个集装箱包含了具体的软件以及基本的linux内核。

image && container && repository

镜像(image)与容器(container)比较好理解
可以简单的认为一个是集装箱的文件形态/非运行时态image
另外一个就是集装箱的运行形态container

仓库(repository)也好理解,就是远程放了一堆images,对他们进行管理,让大家都可以去上面下images

运行一个container

上面针对三者的解释,很容易感知到如果需要运行一个container,至少要有image,有了静态的,才能够动起来。

所以第一步需要获取image,两种方式。

  1. 去repo那边pull下来
  2. 自己用dockerfile build一个

pull比较简单,觉得需要啥,直接pull下来就可以了。
docker 里面针对image很看版本,除非是latest才可以省略,否则都不可以省略

docker pull redis[:version]

# 查看
docker images

dockerfile 构造

刚上手不太会,就会简单一点的。

一般配置一下字段,文件命名为Dockerfile即可,里面内容:

# 从哪个image继承下来
FROM {image_name}[:version]

# 谁发布的
LABEL maintainer='{author_name}'

# 拷贝文件到image里面
COPY . ./web-back

# 构建image时候直接执行
RUN apt-get update && apt-get install vim -y

# 开放端口
EXPOSE 8000
docker build -t {image_name}[:version] {dockerfile_path}

弄完dockerfile 执行上面命令就会生成一个image,dockerfile_path可以写.就在当前目录找dockerfile

dockerfile 最头疼的就是这个copy。特别是这个路径,我是不太理解,但踩了n多雷,我自己的见解是
这个dockerfile在哪里,那个地方就认为是根目录 / 所以你在写copy时候,不能写../xxxxx,会找不到死活找不到copy文件在哪里

copy 默认文件夹是递归复制

container run

有了image就可以进行执行。

docker run --name {container_alias} -p {run_yourhost_port}:{container_inside_port} -itd {iamge_name}

短短一句话也全是问题…

name比较简单,就是给你接下来的container起个名字,后面执行用名字就可以了,就可以不用container ID

-itd 这个比较烦… 我暂时不是特别懂,-d比较简单,就是直接后台执行,如果不加-d相当于直接进入了容器内部的Linux,加上-d就是后台运行。
-it 文档是说明进行网络连接等等操作。。但我是一般用d执行但有时候容器启动不起来有时候得加it,也是不太懂原理,反正看着操作就行。

然后重量级的就是这个port,表面看着平平无奇,但我感觉内部藏着docker的精髓…
说简单点我觉得就是将container内部的一个port将运行container的主机的port关联起来,将所有访问到这个主机的port全部转发到这个container的port去

  • 为什么需要转发?

因为,docker的一个container都涵盖了Linux内核,所以它实际上是一个虚拟机,他有自己的网络,有自己的内部端口,你在container运行的任何东西,实际上都运行在这个内部虚拟机上面。所以任何需要访问这个container里面的服务,你都需进行port关联转发,才能够访问,如果不进行转发,会发现根本访问不到。

一般执行起来之后常用命令

# 查看容器执行状态
docker ps -a

# 只返回 container id
docker ps -aq

# 停止容器
docker stop {container ID / alias}

# 删除容器
docker rm {container ID / alias}

# 删除所有容器
docker rm `docker ps -aq`

# 进入container
docker exec -it {container ID / alias}

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

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

相关文章

MQTT协议解析 : 物联网领域的最佳选择

1. MQTT协议概述 1.1 MQTT协议是什么 MQTT : Message Queuing Telemetry Transport 模式 : 发布 / 订阅主题优点 : 代码量小、低带宽、实时可靠应用 : 物联网、小型设备、移动应用MQTT 常用端口 : 1883 MQTT是一个网络协议,和HTTP类似,因为轻量简单&…

Pytorch实现transformer语言模型

转载自&#xff1a;| 03_language_model/02_Transformer语言模型.ipynb | 从头训练Transformer语言模型 |Open In Colab | Transformer语言模型 本节训练一个 sequence-to-sequence 模型&#xff0c;使用pytorch的 nn.Transformer <https://pytorch.org/docs/master/nn.ht…

ElasticSearch向量检索技术方案介绍

1、背景 在人工智能快速发展的今天&#xff0c;推荐技术、以文搜图、以文搜视频、以图搜图等技术已经得到了广泛的应用&#xff0c;在百度、小红书、抖音、快手等app上随便输入一段文本&#xff0c;搜索结果已不像早些年那么单一&#xff1a;只有一些文字信息&#xff0c;现在的…

算法(第一周)

一周周五&#xff0c;总结一下本周的算法学习&#xff0c;从本周开始重新学习许久未见的算法&#xff0c;当然不同于大一时使用的 C 语言以及做过的简单题&#xff0c;现在是每天一题 C 和 JavaScript&#xff08;还在学&#xff0c;目前只写了一题&#xff09; 题单是代码随想…

华为云镜像仓库基本操作

1. 登陆华为云账户,在搜索框输入"镜像容器",如下图所示: 单击 输入名称后单击确定 创建成功 2. 回到这里 单击这里 获得登陆指令 复制到你的云服务器粘贴,回车后提示"Login Succeeded"表示登陆成功. 3. 还是在"总览"这里,单击这里 跟着复制操作…

【1个月速成Java】基于Android平台开发个人记账app学习日记——第10天,登录状态保持与退出登录

系列专栏链接如下&#xff0c;方便跟进&#xff1a; https://blog.csdn.net/weixin_62588253/category_12821860.html?fromshareblogcolumn&sharetypeblogcolumn&sharerId12821860&sharereferPC&sharesourceweixin_62588253&sharefromfrom_linkhttps://b…

MySQL系列之如何在Linux只安装客户端

导览 前言Q&#xff1a;如何安装一个Linux环境下的MySQL客户端一、准备文件1. 确认Server版本2. 选择Client安装文件 二、下载并安装1. 下载1.1 寻找文件1.2 文件说明 2. 安装2.1 上传至Linux服务器2.2 执行安装 三、连接验证1. 确认远程授权2. 建立远程连接 结语精彩回放 前言…

arcgis pro 学习笔记

二维三维集合在一起&#xff0c;与arcgis不同 一、首次使用&#xff0c;几个基本设置 1.选项——常规里面设置自动保存时间 2.新建工程文件&#xff0c;会自动加载地图&#xff0c;可以在选项里面设置为无&#xff0c;以提高启动效率。 3.设置缓存位置&#xff0c;可勾选每次…

【论文复现】MSA+抑郁症模型总结(三)

&#x1f4dd;个人主页&#x1f339;&#xff1a;Eternity._ &#x1f339;&#x1f339;期待您的关注 &#x1f339;&#x1f339; ❀MSA抑郁症模型 热门研究领域&#xff1a;情感计算的横向发展1. 概述2. 论文地址3. 研究背景4. 主要贡献5. 模型结构和代码6. 数据集介绍7. 性…

‌STAR法则

一&#xff1a;STAR法则 STAR法则是一种简单而实用的表现技巧&#xff0c;常被用于求职过程中的个人经历描述&#xff0c;富有条理性&#xff0c;可以帮助你在职场中脱颖而出。“STAR”分别对应的是situation-task-action-result&#xff0c;通过情境、目标、行动和结果四个方面…

java:使用Multi-Release Jar改造Java 1.7项目增加module-info.class以全面合规Java 9模块化规范

common-java是一个我维护了好多年的一个基础项目,编译目标为Java 1.7 现在整个团队的项目要做Java 9以上的技术迁移准备,就需要对这个在内部各项目中被广泛引用的基础项目进行改造,以适合Java 9的模块化规范。 Automatic-Module-Name Java 9的模块化规范(即Java Platform Mod…

力扣题库——75.颜色分类

这道题采用三路快速排序&#xff0c;快速排序思路看这里快速排序。将数列分为三组&#xff1a;小于基准、等于基准、大于基准。和快排一样&#xff0c;对左右递归进行快速排序。 先将题目简化&#xff0c;如果只有数字0和1&#xff0c;扫描一遍数组&#xff0c;遇到数字1不用管…

python - leetcode【数据结构-算法】-入门/通关手册

python的算法入门/通关/手册 前言&#xff1a;算法通关手册&#xff08;LeetCode&#xff09;-githubHello 算法&#xff1a;python数据结构和算法 - 中文版The Algorithms - Python最后刷题思维: python-leetcode刷题常用语法&#xff1a;变量定义&#xff1a;逻辑与或非和按位…

使用 Flask 和 ONLYOFFICE 实现文档在线编辑功能

提示&#xff1a;CSDN 博主测评ONLYOFFICE 文章目录 引言技术栈环境准备安装 ONLYOFFICE 文档服务器获取 API 密钥安装 Flask 和 Requests 创建 Flask 应用项目结构编写 app.py创建模板 templates/index.html 运行应用功能详解文档上传生成编辑器 URL显示编辑器回调处理 安全性…

EasyUI弹出框行编辑,通过下拉框实现内容联动

EasyUI弹出框行编辑&#xff0c;通过下拉框实现内容联动 需求 实现用户支付方式配置&#xff0c;当弹出框加载出来的时候&#xff0c;显示用户现有的支付方式&#xff0c;datagrid的第一列为conbobox,下来选择之后实现后面的数据直接填充&#xff1b; 点击新增&#xff1a;新…

C# 选择导入文件的路径、导出文件的路径

通过C#代码&#xff0c;调出windows风格的文件选择对话框和存储文件对话框。提供界面来选择文件的位置&#xff0c;并将完整路径以字符串形式返回。 1、选择导入文件&#xff0c;获取其路径 C#通过这段代码将弹出一个文件选择对话框&#xff0c;允许用户选择一个文件&#xff…

数据结构-并查集专题(1)

一、前言 因为要开始准备年底的校赛和明年年初的ACM、蓝桥杯、天梯赛&#xff0c;于是开始按专题梳理一下对应的知识点&#xff0c;先从简单入门又值得记录的内容开始&#xff0c;并查集首当其冲。 二、我的模板 虽然说是借用了jiangly鸽鸽的板子&#xff0c;但是自己也小做…

二手交易平台测试用例设计和执行

&#x1f384;欢迎来到边境矢梦的csdn博文&#x1f384; &#x1f384;追求开源思想和学无止境思想一直在提升技术的路上 &#x1f384; &#x1f308;涉及的领域有&#xff1a;Java、Python、微服务架构和分布式架构思想、基本算法编程&#x1f308; &#x1f386;喜欢的朋友可…

计算机图形学论文 | 多边形中的点可见性快速算法

&#x1f98c;&#x1f98c;&#x1f98c;读论文 &#x1f428;&#x1f428;摘要 针对点的可见性计算这一计算几何中的基础问题&#xff0c;提出一种支持任意查询点的可见多边形快速计算的基于多边形Voronoi图的点可见性算法。以与Voronoi骨架路径对应的Voronoi通道概念&…

Redis 高并发分布式锁实战

目录 环境准备 一 . Redis 安装 二&#xff1a;Spring boot 项目准备 三&#xff1a;nginx 安装 四&#xff1a;Jmeter 下载和配置 案例实战 优化一&#xff1a;加 synchronized 锁 优化二&#xff1a;使用 redis 的 setnx 实现分布式锁 优化三&#xff1a;使用 Lua 脚本…