【容器Docker】Docker学习笔记

1、什么是Docker

  • Docker 将程序和程序运行所依赖的所有环境都打包到镜像里。“build once, run anywhere”
  • Docker 是容器的一种实现。

Windows 下如何安装Docker:

  • 官方安装教程:Install Docker Desktop on Windows | Docker Docs
  • 有两种安装套装,需要安装 WSL2 或者开启 Hyper-V and Containers 虚拟化特性。
  • 注意如果你已经装了WSL,不想因为装WSL2破坏了WSL,那么最好选择“开启 Hyper-V and Containers 虚拟化特性”的这个方式。
  • 无论哪种套装,安装“Docker Desktop” 并运行启动。

2、docker image

一个Docker 镜像(image)包含了程序代码和程序运行所依赖的所有环境。 Docker 镜像一般存放在镜像仓库服务(Image Registry)里,默认的镜像仓库服务是Docker Hub。 用户可以制作、构建镜像、将镜像上传到镜像仓库服务,从而可以在其他地方从镜像仓库服务里拉取镜像。

2.1 拉取

例如,从Docker Hub拉取 helloworld 镜像的命令:

docker image pull  library/hello-world

2.1 列举所有镜像

一个镜像的名字也叫镜像的仓库名,英文是REPOSITORY,本地列举所有镜像的命令

docker image ls

2.3、查看某个镜像的配置信息

一个镜像的配置信息可以通过下面的命令查看

docker image inspect hello-world

2.4、移除镜像 

通过命令docker image rm命令可以删除不用的镜像,例如先通过命令查看有哪些镜像。

docker image ls

截图如下,可以看到两个名字为<none>的镜像:

如果镜像没有被启动过,直接之下下面的命令能删除成功:

docker image rm 09d01ed9156b

启动过我们可以批量使用Linux命令批量删除

docker ps -a | grep "Exited" | awk '{print $1 }'|xargs docker rm

2.5、查看所有的镜像操作命令

docker image

 3、docker cnontainer

一个Docker镜像(image)运行后,就是一个容器实例,称为container

3.1 运行

以镜像hello-world为例,启动容器:

docker container run -it hello-world

 3.2 运行,进入交互式shell环境

运行容器后可以通过参数指定执行的第一个程序,例如可以先拉取ubuntu的容器镜像

docker image pull  library/ubuntu

下载 ubuntu 镜像成功

接着,启动container 并执行第一个程序bin/bash:

docker container run -it ubuntu bin/bash

可以看到成功进入了ubuntu容器实例的shell环境,并在shell环境里执行了lsll命令。

3.3 kill容器

使用容器的id就可以杀死容器实例

docker container kill ******

 3.4  更多命令

下面的命令可以看到所有的 container 可选操作

docker container

如图所示:

4、 使用Dockerfile制作镜像

4.1 创建仓库

在你自己的 gitcode.net 上创建一个仓库,命名为cloud_native_hello_py,目录结构如下:

.
├── .dockerignore
├── .gitignore
├── Dockerfile
├── README.md
└── src
    ├── main.py
    └── requirements.txt

4.2 构建容器并发布

上一题准备了代码仓库,并且配置了对应的 Dockerfile, 现在使用 docker 命令来制作镜像:

docker image build -t cloud_native_hello_py:0.0.1 ./

构建如图所示:

构建镜像之后,可以将镜像发布到 DockerHub ,不过需要首先注册下账号

  1. 在 https://hub.docker.com 上注册自己的账号
  2. 使用命令 docker login 在本机登陆,输入自己的用户名和密码

现在,可以使用命令 tag 来修改镜像的标签为用户名/镜像名格式:

docker tag cloud_native_hello_py:0.0.1 long/cloud_native_hello_py

可以用docker image ls验证结果

现在,可以使用镜像的 push 命令来发布

docker push long/cloud_native_hello_py:latest

5、拉取镜像并运行 

上一节创建了一个Python Flask 服务git仓库,然后为它配置了一个Dockerfile,最后构建了镜像并推送到Docker Hub。

现在,可以从 Docker Hub 拉取该镜像并运行。

首先,拉取镜像:

docker pull long/cloud_native_hello_py

其次,运行容器:

docker run -p 1024:1024 -it long/cloud_native_hello_py

这个命令没有指定容器启动后运行的命令,因此容器启动后会执行镜像制作时Dockerfile里指定的CMD命令,可以看到容器启动后执行了Python程序,容器服务在1024端口监听HTTP请求,因为 docker run 配置了参数-p 1024:1024,这里把主机的1024端口映射到了容器里的1024端口。

现在,在浏览器里测试下请求:

请求成功,输出了"Hello World!",到这里你就成功学会了容器镜像制作、发布、拉取和运行一条龙服务。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【基础篇】YOLO系列之训练环境(GPU)搭建篇

&#x1f680;Pytorch环境配置&#xff08;Windows&#xff09; &#x1f528; Anaconda安装 此处下载安装即可 ⭐温馨提示&#xff1a;安装路径不能含有中文&#xff0c;建议不要安在c盘&#xff08;很占内存&#xff09; 环境变量配置 编辑系统环境变量 -> 环境变量 ->…

短视频账号矩阵系统源码3年技术服务部署

安装Web服务器&#xff1a;搭建系统需要一个Web服务器&#xff0c;例如Apache或Nginx。 安装PHP环境&#xff1a;PHP是一种服务器端脚本语言&#xff0c;用于处理Web应用程序中的动态内容。你需要安装和配置PHP环境。 一、安装MySQL数据库&#xff1a;抖音短视频SEO矩阵系统需…

React基础巩固日志1

书写了一篇vue3的基础构建之后&#xff0c;不能带着各位一起学习vue3了&#xff0c;因为我要面试上海的前端岗位了&#xff0c;所以从现在开始&#xff0c;我要带着大家一起学习React了。 以下是我使用react书写的要掌握的react的知识点&#xff1a; ** ** 那么下面我们就一一通…

链路状态路由协议——OSPF

文章目录 一、链路状态路由协议-OSPF1. 开放式最短路径优先&#xff08;OSPF&#xff09;2. OSPF 原理介绍3. OSPF 报文4. 邻居状态5. Router ID、邻居和邻接6. 邻居发现7. 数据库同步8. 支持的网络类型9. DR 和 BDR10. DR 和 BDR选举11. OSPF 区域13. OSPF 开销14. OSPF 配置1…

二维码怎么分解成链接?提取二维码内容的方法

现在很多内容都会通过二维码来承载&#xff0c;通过扫码的方式来获取内容&#xff0c;当需要提取二维码图片的内容时&#xff0c;一般会通过二维码解码器的功能来实现。那么具体的处理方法分几个步骤呢&#xff0c;可能还有些小伙伴不太清楚具体的使用技巧&#xff0c;那么下面…

网络轻量化的方法(低秩分解、权重量化、权重剪枝/稀疏化、结构化剪枝/稀疏化和神经网络架构学习)

深度卷积神经网络轻量化技术综述 在现代深度学习应用中&#xff0c;轻量化神经网络已成为一个至关重要的研究领域。以下是一些主要的轻量化方法&#xff1a; 低秩分解: 通过技术如奇异值分解&#xff08;SVD&#xff09;将神经网络中的权重矩阵近似为低秩矩阵。这种方法特别适…

轨道车辆中的主动悬挂:文献综述(二)

写在前面 发表于Rail. Eng. Science的Active suspension in railway vehicles: a literature survey一文&#xff0c;全面总结了2020年之前轨道车辆领域主动控制方案的各种重要实现。其主要作者&#xff0c;Bin Fu、Rocco Libero Giossi、Rickard Persson、Sebastian Stichel、…

Apache Doris 在奇富科技的统一 OLAP 场景探索实践

导读&#xff1a;随着消费信贷规模快速增长&#xff0c;个人信贷市场呈现场景化、体验感强的特征&#xff0c;精准营销、精细化风险管理以及用户使用体验的优化愈发重要。作为中国卓越的由人工智能驱动的信贷科技服务平台&#xff0c;奇富科技选择将 Apache Doris 作为整体 OLA…

《volatile使用与学习总结:2023-12-17》多层面分析学习java关键字--volatile

一、简介 volatile是java中提供的一种轻量级的同步机制&#xff0c;相比于synchronized更加轻量&#xff0c;因为volatile避免了线程频繁的上下文切换和调度&#xff0c;但是也有缺点&#xff0c;同步性差并且使用起来易出错。 二、并发编程的三个概念 原子性 原子性即一个操…

基于JAVA+SpringBoot+Vue的前后端分离的学校请假管理系统

✌全网粉丝20W,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取项目下载方式&#x1f345; 一、项目背景介绍&#xff1a; 系统分为四个角色&…

直播种类之图片直播

图片直播是一种通过即时拍摄&#xff0c;实现即时共享图片的直播模式。通过互联网技术和智能硬件技术的支持&#xff0c;从摄影师按下快门起&#xff0c;实现照片0.2秒钟上传&#xff0c;实现了真正的即拍即传。 它可以通过将摄像头拍摄到的实时画面和声音信号传输到网络平台&…

如何使用AnyTXT Searcher实现远程办公速查异地电脑文件提升工作效率

如何使用AnyTXT Searcher实现远程办公速查异地电脑文件提升工作效率 前言1. AnyTXT Searcher1.1 下载安装AnyTXT Searcher 2. 下载安装注册cpolar3. AnyTXT Searcher设置和操作3.1 AnyTXT结合cpolar—公网访问搜索神器3.2 公网访问测试 4. 固定连接公网地址 前言 你是否遇到过…

Windows本地搭建开源企业管理套件Odoo并实现公网访问

文章目录 前言1. 下载安装Odoo&#xff1a;2. 实现公网访问Odoo本地系统&#xff1a;3. 固定域名访问Odoo本地系统 前言 Odoo是全球流行的开源企业管理套件&#xff0c;是一个一站式全功能ERP及电商平台。 开源性质&#xff1a;Odoo是一个开源的ERP软件&#xff0c;这意味着企…

Amazon CodeWhisperer 体验

文章作者&#xff1a;jiangbei 1. CodeWhisperer 安装 1.1 先安装 IDEA&#xff0c;如下图&#xff0c;IDEA2022 安装为例&#xff1a; 亚马逊云科技开发者社区为开发者们提供全球的开发技术资源。这里有技术文档、开发案例、技术专栏、培训视频、活动与竞赛等。帮助中国开发者…

element plus 日期范围 自定义内容

问题&#xff1a; 按照官网上的自定义内容示例&#xff0c;修改日期选择器没有问题&#xff0c;如果修改日期范围选择器&#xff0c;修改后会丢失日期范围选择时的样式。 解决&#xff1a; 从F12中不难看出日期范围的选择样式来自于.el-date-table-cell 而示例中写的是.cell&…

C++11特性:可调用对象以及包装器function的使用

在C中存在“可调用对象”这么一个概念。准确来说&#xff0c;可调用对象有如下几种定义&#xff1a; 是一个函数指针&#xff1a; int print(int a, double b) {cout << a << b << endl;return 0; } // 定义函数指针 int (*func)(int, double) &print…

[Linux] LVS负载均衡群集——DR模式

一、 DR模式的特点 直接路由&#xff1a; 在LVS_DR模式下&#xff0c;负载均衡器不修改数据包的IP地址&#xff0c;只修改目的MAC地址。这使得数据包可以直接路由到后端实际服务器上&#xff0c;而不需要返回到负载均衡器。 高性能&#xff1a; 由于数据包在传输过程中不需要回…

生物识别规划人脸识别方案的概述和特点

方案概述 人脸识别方案采用高性能AI芯片&#xff0c;支持RGB和IR摄像头&#xff0c; 支持LCD显示屏。 方案特点 • 普通RGB摄像头和IR摄像头同时参与3D成像RGB摄像头 支持屏幕回显 • 双目摄像头得到特征点视差计算人脸相 对3D深度信息&#xff0c; 同时利用可见光和红外 光…

【数据结构】树状数组算法总结

知识概览 树状数组有两个作用&#xff1a; 快速求前缀和 时间复杂度O(log(n))修改某一个数 时间复杂度O(log(n)) 例题展示 1. 单点修改&#xff0c;区间查询 题目链接 活动 - AcWing本活动组织刷《算法竞赛进阶指南》&#xff0c;系统学习各种编程算法。主要面向…

[极客大挑战 2019]Havefun1

1.别的博主写的非常好&#xff0c;我就不重复造轮子了 一位优秀师傅写的&#xff1a;https://blog.csdn.net/HackerQY/article/details/128503805