从零开始学Docker(二):启动第一个Docker容器
宿主机环境:RockyLinux 9
这个章节不小心搞成命令学习了,后面在整理成原理吧
Docker生命周期
拉取并启动Nginx容器
# 查找镜像 例如:nginx
[root@192 ~]# docker search nginx
我们可以看到,第一个时官方认证构建的nginx
# 拉取下载镜像 docker pull nignx,这个和git很像,git pull xxx
[root@192 ~]# docker pull nginx
如下,这里我们使用的是简单的pull操作,默认下载的是最新版本 latest
拉取镜像后查看镜像列表
运行该nginx镜像,创建一个具体的容器,然后在这个容器中,就跑着一个nginx服务了
# 运行镜像的命令,格式:docker run 参数 镜像的名字/ID
# -d:后台运行容器,-p:端口映射,宿主机端口:容器内端口,
# 当我们访问宿主机端口时,也就时访问容器内的端口
[root@192 ~]# docker run -d -p 80:80 nginx#在我们运行完容器后,会返回一个容器ID
[root@192 ~]# docker run -d -p 80:80 nginx
870be1725361eb35588a55641b9637f6b395741ad642e6afeeeda2edbd23c5c3
执行命令 docker ps 我们可以查看到当前的容器列表,此时能看到容器80端口已经映射到宿主机上面了
在浏览器访问宿主机的80端口,就能看到容器内80端口运行的是什么
查看宿主机的网络配置,能够看到80端口,这里显示进程名称的并不是nginx,而是docker-proxy,这是docker启动的代理程序,将宿主机的80端口,代理到容器内的80端口
停止容器,docker stop 容器ID,停止容器后再去docker ps查看容器,之前的nginx已经没有了
进入正在运行的容器内,查看容器的运行系统,执行命令:docker exec -it 容器ID bash
Docker命令学习
# 默认的docker仓库是dockerhub,有大量优质的镜像,以及用户自己上传的镜像[root@192 ~]# docker search 镜像名:tag,tag就是具体的标签版本# 查看当前docker版本:
[root@192 ~]# docker version#查看当前docker镜像文件:
[root@192 ~]# docker images 或 docker image ls# 查看当前docker运行中的容器:
[root@192 ~]# docker ps# 下载docker镜像:
docker pull 镜像名, # 默认的是 latest,
# 还可以指定版本
[root@192 ~]# docker pull 镜像名:版本号# 查看docker服务信息
[root@192 ~]# docker info# 查看docker的数据目录
[root@192 etc]# docker info | grep RootDocker Root Dir: /var/lib/docker[root@192 ~]# ls /var/lib/docker
buildkit containers engine-id image network overlay2 plugins runtimes swarm tmp volumes# 存放docker镜像文件的目录
[root@192 sha256]# ll /var/lib/docker/image/overlay2/imagedb/content/sha256
total 8
-rw------- 1 root root 8149 Jul 29 08:50 89da1fb6dcb964dd35c3f41b7b93ffc35eaf20bc61f2e1335fea710a18424287
[root@192 sha256]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
nginx latest 89da1fb6dcb9 24 hours ago 187MB# 当我们查看镜像文件时,可以看到是JSON数据类型的文件,其作用是记录 镜像和容器的配置关系
[root@192 sha256]# cat 89da1fb6dcb964dd35c3f41b7b93ffc35eaf20bc61f2e1335fea710a18424287 #-it:开启一个交互式的终端, --rm 容器退出时删除该容器
[root@192 sha256]# docker run -it --rm --name nginx01 nginx bash# 查看镜像列表
[root@192 sha256]# docker images# 查看某个镜像信息
[root@192 sha256]# docker images nginx# 查看某个镜像信息,具体到某个tag
[root@192 sha256]# docker images nginx:tag名# 格式化显示镜像列表,--format后跟docker的模板语言
[root@192 sha256]# docker images --format "{{.ID}}--{{.Repository}}"# 以表格形式显示镜像信息
[root@192 sha256]# docker images --format "table {{.ID}}\t{{.Repository}}\t{{.Tag}}"# 下载镜像
[root@192 sha256]# docker run hello-world# 查看当前镜像信息
[root@192 sha256]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
nginx latest 89da1fb6dcb9 24 hours ago 187MB
hello-world latest 9c7a54a9a43c 2 months ago 13.3kB# 删除镜像:名称、ID
[root@192 sha256]# docker rmi hello-world
[root@192 sha256]# docker rmi 9c7a54a9a43c# 导出镜像,并重定向至/opt目录
[root@192 sha256]# docker image save nginx > /opt/nginx001.taz
[root@192 sha256]# ls /opt/
containerd nginx001.taz# 导入镜像
[root@192 opt]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
[root@192 opt]# docker image load -i /opt/nginx001.taz
c6e34807c2d5: Loading layer [==================================================>] 77.81MB/77.81MB
24ee1d7d6a62: Loading layer [==================================================>] 113.2MB/113.2MB
4deafab383fa: Loading layer [==================================================>] 3.584kB/3.584kB
8aedfcd777c7: Loading layer [==================================================>] 4.608kB/4.608kB
c88d3a8ff009: Loading layer [==================================================>] 2.56kB/2.56kB
abc3beec4b30: Loading layer [==================================================>] 5.12kB/5.12kB
922d16116201: Loading layer [==================================================>] 7.168kB/7.168kB
Loaded image: nginx:latest
[root@192 opt]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
nginx latest 89da1fb6dcb9 25 hours ago 187MB# 查看docker镜像详细信息
[root@192 opt]# docker image inspect 镜像ID
Docker容器管理
# docker run 镜像名,如果镜像不存在本地,则会在线区下载镜像
# 容器内的进程必须处于前台运行状态,否则容器就会直接退出# 运行容器,切进入容器内
[root@192 ~]# docker run -it nginx bash# 查看docker容器的运行日志
[root@192 ~]# docker logs 容器ID
# -f 实时打印日期
[root@192 ~]# docker logs -f 容器ID
# 使用管道符,查看最新的5条日志
[root@192 ~]# docker logs 容器ID| tail -5# 进入到正在运行的容器内
[root@192 ~]# docker exec -it 容器ID bash# 查看容器的详细信息
[root@192 ~]# docker container inspect 容器ID# 后台运行docker容器,容器名称为nginx001,且端口映射宿主机的85端口,访问到容器内的80端口
[root@192 ~]# docker run -d -p 85:80 --name nginx001 nginx
6627aa9383d993ed1be7031841daf7cecaefadea8cf1ea678fd3b8121aed2c15
[root@192 ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
6627aa9383d9 nginx "/docker-entrypoint.…" 8 seconds ago Up 8 seconds 0.0.0.0:85->80/tcp, :::85->80/tcp nginx001
[root@192 ~]# docker port 6627aa9383d9
80/tcp -> 0.0.0.0:85
80/tcp -> [::]:85# docker 容器提交
[root@192 ~]# docker commit 6627aa9383d9 nginx_hunter
sha256:53807fe50cade428944877195e5db131a0868052770f0b393d424f14fbe3ba03
[root@192 ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
nginx_hunter latest 53807fe50cad 5 seconds ago 187MB
nginx latest 89da1fb6dcb9 25 hours ago 187MB
相关文章:

从零开始学Docker(二):启动第一个Docker容器
宿主机环境:RockyLinux 9 这个章节不小心搞成命令学习了,后面在整理成原理吧 Docker生命周期 拉取并启动Nginx容器 # 查找镜像 例如:nginx [root192 ~]# docker search nginx 我们可以看到,第一个时官方认证构建的nginx # 拉…...
unity 鼠标事件
Input.GetMouseButtonDown(0)点击屏幕Input.mousePosition鼠标的坐标Input.GetKeyDown(KeyCode.Space)点击空格 1.2D游戏中鼠标触发事件 using System.Collections; using System.Collections.Generic; using Unity.VisualScripting; using UnityEditor; using Un…...
【ChatGPT】相关解读
ChatGPT 背后的“功臣”——RLHF 技术详解 Meta 发布开源可商用模型 Llama 2,实际体验效果如何? Llama 2线上试用地址:replicate.com/a16z-infr…...

【数据中台】DataX源码进行二开插件
参考官方 使用的离线数据同步工具/平台,实现不同数据库等各种异构数据源之间高效的数据同步功能 工具部署 https://github.com/alibaba/DataX/blob/master/userGuid.md 拉取下来的代码,pom.xml里面注释 <!--<module>tsdbreader</module&g…...

【数据结构与算法】基数排序
基数排序 基数排序(Radix Sort)属于“分配式排序”,又称“桶子法”或 bin sort,顾名思义,它是通过键值的各个位的值,将要排序的元素分配至某些“桶”中,达到排序的作用。基数排序法是属于稳定性…...
Java基础一(队列和堆栈)
//示例 //添加新的元素 stack.push(Element e)queue.add(Element e) //满报IllegalStateException异常 queue.offer(Element e) //满成功true,否则false //删除 stack.pop()queue.remove() //移除头部元素,空报异常 queue.poll() //移除头部元素&…...

使用ansible playbook编写lnmp架构
使用ansible playbook编写lnmp架构 - name: nginx playgather_facts: falsehosts: lnmpremote_user: roottasks: - name: stop firewalldservice: namefirewalld statestopped- name: syslinuxcommand: /usr/sbin/setenforce 0ignore_errors: true- name: nginx.repocopy: src/…...
使用 TorchText 进行语言翻译
使用 TorchText 进行语言翻译 本教程说明如何使用torchtext的几个便捷类来预处理包含英语和德语句子的著名数据集的数据,并使用它来训练序列到序列模型,并注意将德语句子翻译成英语 。 它基于 PyTorch 社区成员 Ben Trevett 的本教程,并由 …...
SpringBoot整合SSMP小demo
创建项目 spring web,mybatis,mysql勾选 加入mp和druid,依赖见SpringBoot基础认识_阳光明媚UPUP的博客-CSDN博客 yml数据源 server:port: 81 spring:datasource:druid: #整合方式配置driver-class-name: com.mysql.jdbc.Driverurl: jdbc:m…...

51单片机--红外遥控
文章目录 红外遥控的介绍硬件电路NEC编码外部中断红外遥控实例代码 红外遥控的介绍 红外遥控是一种无线、非接触控制技术,通过使用红外线来传送控制信号。它具有抗干扰能力强、信息传输可靠、功耗低、成本低、易实现等显著优点,因此被广泛应用于各种电子…...

【图像分类】CNN+Transformer结合系列.2
介绍几篇利用CNNTransformer实现图像分类的论文:CMT(CVPR2022),MaxViT(ECCV2022),MaxViT(ECCV2022),MPViT(CVPR2022)。主要是说明Transformer的局限性&#x…...

用于毫米波天线的新型无卤素超低传输损耗多层电路板R-5410
3月3日消息,松下公司宣布,其工业解决方案公司已经实现了R-5410的商业化,这是一种无卤素、超低传输损耗的多层电路板(MLCB)材料,适用于毫米波天线。将于2021年3月开始量产。 毫米波雷达是汽车、通信等行业的…...
java数据算法-汉诺塔
1、有三根相邻的柱子,标号为A,B,C。 2、A柱子上从下到上按金字塔状叠放着n个不同大小的圆盘。 3、现在把所有盘子一个一个移动到柱子C上,并且每次移动同一根柱子上都不能出现大盘子在小盘子上方。 题解步骤 1、当n1时; 将1号从A移动到C即…...
[QT编程系列-35]:数据存储 - JSON格式配置数据的存储与通知
目录 1. QJsonObject 2 QJsonDocument 3 JSON本文格式 4. JSON示例 5. JASON配置文件示例 1. QJsonObject QJsonObject 是Qt的类之一,用于表示 JSON 对象。 JSON(JavaScript Object Notation)是一种轻量级的数据交换格式࿰…...

【Spring】Spring 中事务的实现
目录 1.编程式事务(手动编写代码)2.声明式事务(利用注解)2.1 Transactional作用范围2.2 Transactional参数说明2.3 Transactional工作原理 3.Spring 中设置事务隔离级别3.1 事务四大特性ACID3.2 事务的隔离级别3.2 Spring中设置事…...

Linux 学习记录60(ARM篇)
Linux 学习记录60(ARM篇) 本文目录 Linux 学习记录60(ARM篇)一、SPI总线1. 概念2. 硬件连接 二、SPI总线协议三、SPI总线通信模式四、对比IIC总线和SPI总线1. 相同点2. 不同点 思维导图 一、SPI总线 1. 概念 1、SPI总结是Motorola首先提出的全双工三线/四线同步串行总线 2、采…...

尚硅谷大数据项目《在线教育之采集系统》笔记002
视频地址:尚硅谷大数据项目《在线教育之采集系统》_哔哩哔哩_bilibili 目录 P032 P033 P033 P034 P035 P036 P032 P033 # 1、定义组件,为各组件命名 a1.sources r1 a1.channels c1 a1.sinks - k1# 2、配置sources,描述source a1.sour…...

校园跑腿小程序功能分享
提起校园跑腿小程序大家都不陌生,尤其是对上大学的伙伴们来说,更是熟悉得不能再熟悉了,和我们的生活息息相关,密不可分。 对于现在的年轻人来说,网购是非常简单和方便的一种购物方式,随之快递也会越来越多。在我们国家…...

PHP8的变量-PHP8知识详解
昨天我们讲解了PHP8的常量,今天讲解PHP8的变量。常量有定义常量和预定义常量,变量呢?那就没有定义变量了,那叫给变量赋值,但是还是有预定义变量的。下面就给大家讲解什么是变量、变量赋值及使用及预定义变量。 一、什么…...

图解TCP 三次握手和四次挥手的高频面试题(2023最新版)
大家好,最近重新整理了一版 TCP 三次握手和四次挥手的面试题(2023最新版)。 ----- 任 TCP 虐我千百遍,我仍待 TCP 如初恋。 巨巨巨巨长的提纲,发车!发车! img TCP 基本认识 TCP 头格式有哪些…...
【网络】每天掌握一个Linux命令 - iftop
在Linux系统中,iftop是网络管理的得力助手,能实时监控网络流量、连接情况等,帮助排查网络异常。接下来从多方面详细介绍它。 目录 【网络】每天掌握一个Linux命令 - iftop工具概述安装方式核心功能基础用法进阶操作实战案例面试题场景生产场景…...
java 实现excel文件转pdf | 无水印 | 无限制
文章目录 目录 文章目录 前言 1.项目远程仓库配置 2.pom文件引入相关依赖 3.代码破解 二、Excel转PDF 1.代码实现 2.Aspose.License.xml 授权文件 总结 前言 java处理excel转pdf一直没找到什么好用的免费jar包工具,自己手写的难度,恐怕高级程序员花费一年的事件,也…...
蓝桥杯 2024 15届国赛 A组 儿童节快乐
P10576 [蓝桥杯 2024 国 A] 儿童节快乐 题目描述 五彩斑斓的气球在蓝天下悠然飘荡,轻快的音乐在耳边持续回荡,小朋友们手牵着手一同畅快欢笑。在这样一片安乐祥和的氛围下,六一来了。 今天是六一儿童节,小蓝老师为了让大家在节…...

【CSS position 属性】static、relative、fixed、absolute 、sticky详细介绍,多层嵌套定位示例
文章目录 ★ position 的五种类型及基本用法 ★ 一、position 属性概述 二、position 的五种类型详解(初学者版) 1. static(默认值) 2. relative(相对定位) 3. absolute(绝对定位) 4. fixed(固定定位) 5. sticky(粘性定位) 三、定位元素的层级关系(z-i…...

Springboot社区养老保险系统小程序
一、前言 随着我国经济迅速发展,人们对手机的需求越来越大,各种手机软件也都在被广泛应用,但是对于手机进行数据信息管理,对于手机的各种软件也是备受用户的喜爱,社区养老保险系统小程序被用户普遍使用,为方…...
React---day11
14.4 react-redux第三方库 提供connect、thunk之类的函数 以获取一个banner数据为例子 store: 我们在使用异步的时候理应是要使用中间件的,但是configureStore 已经自动集成了 redux-thunk,注意action里面要返回函数 import { configureS…...

Python基于历史模拟方法实现投资组合风险管理的VaR与ES模型项目实战
说明:这是一个机器学习实战项目(附带数据代码文档),如需数据代码文档可以直接到文章最后关注获取。 1.项目背景 在金融市场日益复杂和波动加剧的背景下,风险管理成为金融机构和个人投资者关注的核心议题之一。VaR&…...

【笔记】WSL 中 Rust 安装与测试完整记录
#工作记录 WSL 中 Rust 安装与测试完整记录 1. 运行环境 系统:Ubuntu 24.04 LTS (WSL2)架构:x86_64 (GNU/Linux)Rust 版本:rustc 1.87.0 (2025-05-09)Cargo 版本:cargo 1.87.0 (2025-05-06) 2. 安装 Rust 2.1 使用 Rust 官方安…...

day36-多路IO复用
一、基本概念 (服务器多客户端模型) 定义:单线程或单进程同时监测若干个文件描述符是否可以执行IO操作的能力 作用:应用程序通常需要处理来自多条事件流中的事件,比如我现在用的电脑,需要同时处理键盘鼠标…...
go 里面的指针
指针 在 Go 中,指针(pointer)是一个变量的内存地址,就像 C 语言那样: a : 10 p : &a // p 是一个指向 a 的指针 fmt.Println(*p) // 输出 10,通过指针解引用• &a 表示获取变量 a 的地址 p 表示…...