01-Docker-简介、安装与使用

1. docker简介

  • Docker 是一个应用打包、分发、部署的工具
  • 你也可以把它理解为一个轻量的虚拟机,它只虚拟你软件需要的运行环境,多余的一点都不要,
  • 而普通虚拟机则是一个完整而庞大的系统,包含各种不管你要不要的软件。

2. 相关概念

2.1 容器

轻量化的运行实例,包含应用代码、运行时环境和依赖库。通过镜像创建,可以理解为一个简易的linux系统。

2.2 镜像

只读模板,定义了容器的运行环境(如操作系统、软件配置等)。

2.3 仓库

存放镜像的地方,分为公有仓库和私有仓库

3. 安装

  • 以macos为例(命令行安装)
brew install --cask docker
  • 启动docker
open -a Docker

4.配置镜像加速

  • 打开docker-设置- Docker Engine
    在这里插入图片描述
"registry-mirrors": ["https://docker.m.daocloud.io/","https://huecker.io/","https://dockerhub.timeweb.cloud","https://noohub.ru/","https://dockerproxy.com","https://docker.mirrors.ustc.edu.cn","https://docker.nju.edu.cn","https://xx4bwyg2.mirror.aliyuncs.com","http://f1361db2.m.daocloud.io","https://registry.docker-cn.com","http://hub-mirror.c.163.com","https://docker.mirrors.ustc.edu.cn"]

点击 Apply & Restart 重启 Docker。

  • 验证 Docker 运行
docker run hello-world

5. docker常用命令

5.1 帮助命令

docker --version		# 显示版本信息
docker info				# 显示系统信息
docker 命令 --help 		# 万能命令

5.2 镜像命令

docker images		# 查看所有本地的主机上的镜像# 可选项-a, -all		# 列出所有镜像-q, --quiet		# 只显示镜像的id
docker search		# 搜索镜像# 可选项
--filter=STARS=3000		# 搜索出来的镜像是STARS大于3000的
docker pull			# 下载镜像
docker rmi		# 删除镜像
docker rmi -f 容器id		# 删除指定镜像
docker rmi -f 容器id	 容器id 容器id 容器id		 # 删除多个镜像
docker rmi -f $(docker images -aq)		# 删除全部镜像

5.3 容器命令

  • 说明: 有了镜像才可以创建容器。下载一个nginx镜像进行测试学习
docker pull nginx
  • 新建容器并启动
docker run [可选参数] image# 参数说明
--name="Name"	容器名字 
-d				后台方式运行
-it				使用交互方式运行,进入容器查看内容
-p				指定容器端口 -p 8080:8080-p ip:主机端口:容器端口-p 主机端口:容器端口	(常用)-p 容器端口
-p				随机指定端口

测试,启动并进入容器

(base) 123@myiy ~ % docker run -it nginx /bin/bash
root@70276d8feeeb:/# ls
bin   dev		   docker-entrypoint.sh  home  media  opt   root  sbin	sys  usr
boot  docker-entrypoint.d  etc			 lib   mnt    proc  run   srv	tmp  var
root@70276d8feeeb:/# exit	
  • 列出所有运行的容器
docker ps 命令-a		# 列出正在运行的容器+历史运行过的容器
-n=# 最近创建过的容器
-q		# 只显示容器的编号
  • 退出容器
exit	# 直接容器退出并停止
ctrl + P + Q	# 容器不停止退出
  • 删除容器
docker rm 容器id			# 删除指定容器,不能删除正在运行的容器
docker rm -f $(docker ps -aq)		# 删除所有容器
docker ps -a -q|xargs docker rm		# 删除所有容器
  • 启动和停止容器
docker start 容器id
docker restart 容器id
docker stop 容器id
docker kill 容器id

5.4 常见其他命令

  • 后台启动命令
docker run -d 镜像名
  • 查看日志
docker logs -f -t --tail 容器,没有日志
  • 查看容器中进程信息
docker top 容器id
  • 查看镜像元数据
docker inspect 容器id
  • 进入当前正在运行的容器
docker exec -it 容器id /bin/bash
或者
docker attach 容器id
  • 从容器内拷贝文件到主机(拷贝是手动的,未来使用-v卷技术,实现自动)
docker cp 容器id:容器内路径 目的主机路径

6. 作业练习

Docker安装nginx

# 1,搜索镜像
# 2.下载镜像
docker pull nginx
# 3.运行测试
docker run -d --name nginx01 -p 3344:80 nginx-d: 后台运行--name : 给容器命名-p 宿主机端口:容器端口
# 4.进入容器
docker exec -it nginx01 /bin/bash

docker安装tomcat

# 0.官方(用完即删除)
$ docker run -it --rm tomcat:9.0# 1.下载镜像
docker pull tomcat:9.0
# 2.启动运行
docker run -d --name tomcat01 -p 3355:8080 tomcat
# 3.进入容器
docker exec -it tomcat01 /bin/bash

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

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

相关文章

阿里云参数配置化

阿里云参数配置化 一、问题描述 当我们直接在AliOSSUtils.java中对所需的阿里云OSS相关参数进行赋值时,当相关参数发生改变,但是又在多次进行了赋值这些参数,那么就需要逐一进行修改,所以我们直接在SpringBoot项目的配置文件appli…

Diamond开发经验(1)

前言: 学习Lattice的芯片开发的过程中,很多实际开发过程中遇到的问题是没办法绕过的,虽然我今天被绕了一天(此句多余,单纯记录美好心情哈哈哈哈)将这些解决方法梳理成文章供大家参考,十个问题组成一篇文章。…

神经网络训练过程详解

神经网络训练过程详解 神经网络训练过程是一个动态的、迭代的学习过程,接下来基于一段代码展示模型是如何逐步学习数据规律的。 神经网络拟合二次函数:代码详解 下面将详细解释这段代码,它使用神经网络拟合一个带有噪声的二次函数 y x 2x …

LeetCode100-560和为K的子数组

本文基于各个大佬的文章上点关注下点赞,明天一定更灿烂!前言Python基础好像会了又好像没会,所有我直接开始刷leetcode一边抄样例代码一边学习吧。本系列文章用来记录学习中的思考,写给自己看的,也欢迎大家在评论区指导…

【PZ-ZU47DR-KFB】璞致FPGA ZYNQ UltraScalePlus RFSOC QSPI Flash 固化常见问题说明

1 Flash 固化Flash 固化需要先生成 BOOT.bin 文件,这边以裸机的串口工程进行讲解如何生成 BOOT.bin 文件及 Flash 固化操作。有读者会遇到,只使用 PL 端的情况,也需要进行 Flash 固化。我们需要添加 PS 端最小配置(包含 Flash 配置…

数据结构:查找表

一、数据结构的概念数据结构是指相互之间存在一种或多种特定关系的数据元素的集合。它不仅仅是存储数据的方式,更强调数据之间的逻辑关系和操作方法。数据结构主要从以下几个角度来理解:1. 数据之间的关系逻辑结构:集合结构:元素之…

自建知识库,向量数据库 (十)之 文本向量化——仙盟创梦IDE

自建文章向量化技术:AI 浪潮下初学者的进阶指南 在人工智能(AI)蓬勃发展的浪潮中,向量化作为将文本数据转化为数值向量表示的关键技术,成为理解和处理文本的基石。本文将结合给定的代码示例,深入探讨自建文…

数据结构 -- 顺序表的特点、操作函数

线性表顺序存储的优缺点优点无需为表中的逻辑关系增加额外的存储空间,利用连续的内存单元存储数据,存储密度高。支持 随机访问,通过下标可在 O(1) 时间复杂度内定位元素(如数组按索引取值),查询效率稳定。缺…

反向代理实现服务器联网

下载脚本:https://gitee.com/995770513/ssh-reverse-socket然后解压到 D:\Download在本机运行 cd D:\Download\ssh-reverse-socket-master\ssh-reverse-socket-master python socket5_proxy.py --ssh_cmd "xaserver10.150.10.51 -p 22" --socket5_port 78…

C语言关于函数传参和返回值的一些想法2(参数可修改的特殊情况)

我最近写了一篇文章名为“C语言关于函数传参和返回值的一些想法”(C语言关于函数传参和返回值的一些想法-CSDN博客),里面提到了一种观点就是传参的参数在函数体内部是只读的,不能写它,因为如果写了,也就是污…

前端AI对话功能实现攻略

一、对话内容渲染 在前端页面的 AI 对话场景中,对话内容的渲染效果直接影响用户的阅读体验和交互效率。合理选择对话格式、优化流式对话呈现、嵌入自定义内容以及实现语音播报等功能,是提升整体体验的关键。 对话格式选择 MarkDown 作为一种轻量级标记语…

深入理解Redis持久化:让你的数据永不丢失

1 Redis持久化概述 1.1 什么是Redis持久化 Redis作为一个高性能的内存数据库,默认情况下数据存储在内存中,这意味着一旦服务器重启或发生故障,内存中的数据将会丢失。为了保证数据的持久性和可靠性,Redis提供了持久化机制,将内存中的数据保存到磁盘中。 持久化是Redis实…

IC验证 AHB-RAM 项目(二)——接口与事务代码的编写

目录准备工作接口相关代码编写事务相关代码编写准备工作 DVT(Design and Verification Tools)是一款专门为 IC 验证打造的 IDE 插件,可以理解为智能的 Verilog/System Verilog 编辑器,在 VS Code、Eclipse 软件中使用。 接口相关…

基于Spring Boot的智能民宿预订与游玩系统设计与实现 民宿管理系统 民宿预订系统 民宿订房系统

🔥作者:it毕设实战小研🔥 💖简介:java、微信小程序、安卓;定制开发,远程调试 代码讲解,文档指导,ppt制作💖 精彩专栏推荐订阅:在下方专栏&#x1…

大模型的底层运算线性代数

深度学习的本质是用数学语言描述并处理真实世界中的信息,而线性代数正是这门语言的基石。它不仅提供了高效的数值计算工具,更在根本上定义了如何以可计算、可组合、可度量的方式表示和变换数据。 1 如何描述世界📊 真实世界的数据&#xff08…

Rust 中 i32 与 *i32 的深度解析

Rust 中 &i32 与 *i32 的深度解析 在 Rust 中,&i32 和 *i32 是两种完全不同的指针类型,它们在安全性、所有权和使用方式上有本质区别。以下是详细对比: 核心区别概览 #mermaid-svg-rCa8lLmHB7MK9P6K {font-family:"trebuchet ms…

【PyTorch项目实战】OpenNMT本地机器翻译框架 —— 支持本地部署和自定义训练

文章目录一、OpenNMT(Neural Machine Translation,NMT)1. 概述2. 核心特性3. 系统架构4. 与其他翻译工具的区别二、基于 OpenNMT-py 的机器翻译框架1. 环境配置(以OpenNMT-py版本为例)(1)pip安装…

基于prompt的生物信息学:多组学分析的新界面

以前总以为综述/评论是假大空,最近在朋友的影响下才发现,大佬的综述/评论内容的确很值得一读,也值得分享的。比如这篇讲我比较感兴趣的AI辅助生信分析的,相信大家都是已经实践中用上了,看看大佬的评论,拓宽…

Nacos-8--分析一下nacos中的AP和CP模式

Nacos支持两种模式来满足不同场景下的需求:AP模式(强调可用性)和CP模式(强调一致性)。 这两种模式的选择主要基于CAP理论,该理论指出在一个分布式系统中,无法同时保证一致性(Consist…

水闸安全监测的主要核心内容

水闸安全监测是指通过一系列技术手段和管理措施,对水闸的结构状态、运行性能及环境条件进行实时或定期的观测与评估,以确保水闸在设计寿命期内的安全性和可靠性。其核心目标是及时发现潜在的安全隐患,防止事故发生,保障水利工程的…