首页 > 其他分享 >【Docker 入门学习】

【Docker 入门学习】

时间:2024-11-08 20:20:44浏览次数:7  
标签:容器 入门 Pull 学习 镜像 docker Docker complete

Docekr基础知识


简介:
Docker 是基于 go 开发的开源项目。

引用:
虚拟机缺点:
1.资源占用多
2.冗余步骤多(开机)
3.启动很慢

容器化技术:
容器化技术并不是模拟一个完整的操作系统

docker和虚拟技术的不同
传统虚拟机,虚拟出一条硬件,运行完整的操作系统,然后再系统上安装运行软件
容器内的应用直接运行在宿主机的内容,容器是没有自己的内核,也没有虚拟硬件,所以轻便
每个容器间是相互隔离的,每个容器内都有属于自己的文件系统,互不影响。

Docker基本组成:

  • 镜像(image):
    docker镜像就好比是一个模板,可以通过这个模板创建容器服务,镜像==》run===》镜像01(提供服务),通过这个镜像可以创建多个容器(最终服务运行或者项目运行都是在容器中的)
  • 容器(container):
    Docker利用容器技术,独立运行一个或者一个组应用,通过镜像来创建的
    启动,停止,删除,基本命令
    目前就可以把容器理解为一个简易的linux系统
  • 仓库(repository):
    仓库就是存放镜像的地方;
    共有仓库和私有仓库
    在这里插入图片描述

一、docker安装与卸载

# 1.卸载旧的版本
sudo yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine
# 2.需要的安装包
sudo yum install -y yum-utils

# 3.设置镜像仓库
 #默认国外的
sudo yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo

#推荐使用阿里云的 
sudo yum-config-manager \
    --add-repo \
http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo 
更新索引
yum makecache fast

# 4.安装docker相关的内容 docker-ce 社区 ee企业版
yum install docker-ce docker-ce-cli containerd.io

# 5.启动docker
systemctl start docker

# 6.测试
docker run hello-world

# 7.查看下载的镜像
docker images

# 8.卸载docker
# 卸载依赖
sudo yum remove docker-ce docker-ce-cli containerd.io
# 删除资源  docker默认的工作路径
sudo rm -rf /var/lib/docker
sudo rm -rf /var/lib/containerd

阿里云镜像加速:
在这里插入图片描述

二、Docker基础知识

1. docker run 过程

在这里插入图片描述
在这里插入图片描述

2. docker是怎么工作的?

docker是一个Client-Server结构的系统,docker的守护进程运行在主机上,通过socket客户端访问.
DockerServer接收到Docker-Client的指令就会执行这个命令
在这里插入图片描述

3. docker为什么比VM快?

  • 1.docker有比虚拟机更少的抽象层
  • 2.docker利用的是宿主机的内核,vm需要的是Guest OS
    在这里插入图片描述

所以新建一个容器的时候,docker不需要像虚拟机一样重新加载一个操作系统的内核,避免引导。虚拟机是加载Guest OS,分钟级别的,而docker是利用宿主级的操作系统,省略了复杂的过程,秒级。

区别 Docker 容器 虚拟机
操作系统 与宿主机共享OS 宿主机上运行宿主机os
存储大小 镜像小,便于存储和传输 镜像庞大(vmdk等)
运行性能 几乎无额外性能损失 操作系统额外的CPU、内存消耗
移植性 轻便、灵活、适用于Linux 笨重,与虚拟化技术耦合度高
硬件亲和性 面向软件开发者 面向硬件运维者

5. docker 命令

a. 帮助命令

#显示docker版本信息
docker version 
#显示docker的系统信息,包括镜像和容器的数量    
docker info
#万能命令
docker 命令 -help  

#帮助文档的地址:https://docs.docker.com/engine/reference/commandline/build/

b.镜像命令

# 查看所有本地的镜像
docker images 

# 可选项
	-a, --all             #列出所有镜像
	-q, --quiet         #只显示镜像的ID

在这里插入图片描述

#解释
REPOSITORY 镜像的仓库源
TAG 镜像的标签
IMAGE ID 镜像ID
CREATED 镜像的创建时间
SIZE 镜像的大小

# 搜索镜像
docker search

在这里插入图片描述

docker search mysql --filter=STARS=3000
# 可选项
	--filter=STARS=3000  搜索出来的镜像就是STARS大于3000的
# 下载镜像
docker pull 镜像名 [:tag]

在这里插入图片描述

Using default tag: latest     #不写镜像名,默认最新
latest: Pulling from library/mysql
a330b6cecb98: Pull complete #分层下载:docker images 的核心,联合文件系统
9c8f656c32b8: Pull complete 
88e473c3f553: Pull complete 
062463ea5d2f: Pull complete 
daf7e3bdf4b6: Pull complete 
1839c0b7aac9: Pull complete 
cf0a0cfee6d0: Pull complete 
1b42041bb11e: Pull complete 
10459d86c7e6: Pull complete 
b7199599d5f9: Pull complete 
1d6f51e17d45: Pull complete 
50e0789bacad: Pull complete 
Digest: sha256:99e0989e7e3797cfbdb8d51a19d32c8d286dd8862794d01a547651a896bcf00c  #签名
Status: Downloaded newer image for mysql:latest
docker.io/library/mysql:latest   #真实地址
docker pull mysql == docker.io/library/mysql:latest
# 指定版本下载
docker pull mysql:5.7

在这里插入图片描述

# 删除镜像
docker rmi 镜像id   
# 强制删除指定镜像
docker rmi -f 镜像id  
# 强制删除多个镜像
docker rmi -f 镜像id 镜像id  
# 强制删除全部镜像
docker rmi -f $(docker images -aq) 

c. 容器命令

# 新建容器并启动
docker run [可选参数] image

#参数说明
--name="Name" 容器名字 tomcat01 tomcat02 用来区分容器
-d 			  后台运行
-it 			  使用交互方式运行,进入容器查看内容
-p			  指定容器的端口 -p  8080:8080
        -p ip:主机端口:容器端口
        -p 主机端口:容器端口
        -p  容器端口
        容器端口
-P 			  随机指定端口

在这里插入图片描述

标签:容器,入门,Pull,学习,镜像,docker,Docker,complete
From: https://blog.csdn.net/weixin_47712732/article/details/143633275

相关文章

  • 学习日志007--python函数 学完再练习练
    一、函数的概念1.定义函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段。2.作用函数能提高应用的模块性,和代码的重复利用率3.定义函数代码块以 def 关键词开头,后接函数标识符名称和圆括号()。任何传入参数和自变量必须放在圆括号中间。圆括号之间可以用......
  • python篇:0基础带你入门python之元组集合字典
    一、元组Python中的元组(`tuple`)是一种有序、不可变的集合数据类型。与列表(`list`)类似,元组用于存储多个元素,但一旦创建,它的内容不能修改。元组使用圆括号`()`来定义。1.元组的定义元组可以通过圆括号`()`来定义,也可以省略括号,直接通过逗号分隔元素。示例:#使用圆括......
  • python篇:0基础带你入门python之函数篇
    所谓函数就是将一批代码进行打包封装,便于之后使用比如defmy_fun():print("我爱你")my_fun()这样在任何地方使用my_fun()即可马上输出“我爱你”,一、初入函数 不仅如此,函数分为有参函数和无参函数,有返回函数和无返回函数,总共四个有参有返回函数有参无返回函数无......
  • SQL语法与SQL注入漏洞の入门(第三周)
    基础知识一、SQL语言 •定义:  •SQL是结构化查询语言(StructuredQueryLanguage)的简称,是一种在关系型数据库中定义和操纵数据的标准语言。 •特点: •非过程化语言,没有分支、循环结构,通过几个命令动词就可以实现对数据库以及数据的查询和管理。 •统一的语......
  • 快速入门Zookeeper
    ZookeeperZooKeeper作为一个强大的开源分布式协调服务,扮演着分布式系统中至关重要的角色。它提供了一个中心化的服务,用于维护配置信息、命名、提供分布式同步以及提供组服务等。通过其高性能和可靠的特性,ZooKeeper能够确保在复杂的分布式环境中,各个节点和服务之间的协调和......
  • 「Mac玩转仓颉内测版1」入门篇1 - Cangjie环境的搭建
    本篇详细介绍在Mac系统上快速搭建Cangjie开发环境的步骤,涵盖VSCode的下载与安装、Cangjie插件的离线安装、工具链的配置及验证。通过这些步骤,确保开发环境配置完成,为Cangjie项目开发提供稳定的基础支持。关键词Cangjie开发环境搭建VSCode安装指南Cangjie插件离线安装MacC......
  • 【Docker安全】以非root用户身份运行容器
    原创acchenAC技术与生活在Docker容器中,以非root用户身份运行应用程序是一种安全实践。这样可以减少容器被攻击的风险,并且当应用程序出现问题时,不会对整个系统造成严重影响。本文将详细介绍如何在Dockerfile中创建用户,并以非root用户身份运行容器。一、创建用户在Dockerfile......
  • 怎么从入门到精通:《IDEA 问题库》常见问题及解决方案
    《IDEA问题库​》是一个非常广泛的话题,涉及到许多不同的问题和解决方案。以下是一些常见问题及解决方案: 报错:unableto establish loopbackconnection。问题:无法建立环回连接。解决方案:关闭防火墙。IDEA看不到编译后的target文件。问题:控制台提示编译成功,但左边......
  • 第二周学习笔记Linux:Linux用户权限管理 |文本处理|shell基础
    用户权限命令以及ACL权限相关命令1.Linux安全模型资源分派:Authenticaton:登陆认证,验证用户身份Authorization:授权,不同的用户设置不同权限Accouting:审计,检查用户的时候行为即Linux的AAA认证,是针对网络设备的网络访问控制策略和安全模型1用户Linux是多系统用户,可以......
  • 《计算机基础与程序设计》第七周学习总结
    如2024-2025-7)20241404《计算机基础与程序设计》第七周学习总结作业信息这个作业属于哪个课程https://edu.cnblogs.com/campus/besti/2024-2025-1-CFAP这个作业要求在哪里https://www.cnblogs.com/rocedu/p/9577842.html#WEEK07这个作业的目标<数组与链表基......