Docker 笔记(上篇)

news2024/11/25 22:28:39

Docker 概述

Docker 概念

Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows操作系统的机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。

Docker的历史

在2010年,几个大胡子年轻人从美国知名创业孵化器Y Combinator毕业后,在旧金山成立了一家做PaaS 平台的公司,名叫「dotCloud」,其最主要的创始人是「Solomon Hykes」
dotCloud在当时的商业模式为:以多语言PaaS为卖点,使得用户可以选择不同的开发组件和语言来运行程序。而随着微软、谷歌、亚马逊、IBM等大厂纷纷加入PaaS平台,竞争更是异常激烈,dotCloud的成长变得非常缓慢,可谓是举步维艰,期投资人Peter Fenton说dotCloud在2012年的挣扎,就像温水煮青蛙。
面对那段艰困的时期,在2013年3月份,dotCloud创始人Hykes做了一个在现在看来无比正确的决定:将核心技术开源,开源也就是开放源代码,让全世界的开发者贡献自己的代码。开源后越来越多的工程师开始发现这项技术的优点,人气迅速攀升,速度之快,令人咋舌。这项技术,就是docker,使用Go语言。
3月开源,在3月底就发布了docker 0.1版本,此后几乎每个月都有一个新版本产生,2014年6月,docker第一个里程碑版本1.0发布,到2017年2月8日,docker更新到1.13.1(更新日志),此后又分为Docker CE(社区版)和 Docker EE(商业版)。

Docker安装与卸载

安装Docker

  • 安装Docker ,登录 Docker 官方网站 ,在Docker Engine 中有安装centOS 的教程






 

  • 首先第一步,先卸载旧的Dokcer版本

sudo yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine

  • 第二步,需要安装包 

yum install -y yum-utils

  • 第三步,设置镜像仓库,不要使用官方提供的,因为速度太慢,最好使用阿里云国内安装源安装Docker。

yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

  • 第四步,安装Docker

yum install docker-ce docker-ce-cli containerd.io

      

  • 启动Docker,并检验是否安装成功

systemctl start docker
docker version

  •  运行hello-world

 docker run hello-world

  •  查看下载的hello-world 镜像

docker images

 卸载Docker

  •  卸载软件

yum remove docker-ce docker-ce-cli containerd.io

  •  删除目录(docker 的默认工作路径  /var/lib/containerd)

rm -rf /var/lib/docker 

Docker 常用命令

帮助命令

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

或者查官方文档

镜像命令

  • 查看所有镜像的信息

docker images
# 命令后面的可选项
-a ,--a                 列出所有镜像
-q, --quiet           只显示镜像的ID

 字段分析

REPOSITORY    TAG       IMAGE ID       CREATED        SIZE
hello-world        latest    9c7a54a9a43c   5 months ago   13.3kB
REPOSITORY    仓库的仓库源
TAG                     镜像的标签
IMAGE ID            镜像的ID
CREATED            镜像创建的时间
SIZE                     镜像的大小

  •  搜索镜像

 docker search 搜索镜像
# 可选项,通过搜藏数来过滤
--filter=STARS=3000        #通过搜索数来过来镜像

 

  • 下载镜像

 docker pull 镜像名[:tag]
# tag 是可选项,如果不选tag ,那么默认下载最新版本

 

  • 删除镜像

docker rmi -f  IMAGE/REPOSITORY         # 删除指定镜像
docker rmi -f  $(docker images -aq)           #  删除所有镜像,循环删除

 

容器命令

 有了镜像才可以创建容器,通过下载centOS 镜像来测试学习

  • 下载centOS 镜像

docker pull centos

  • 新建容器并启动

docker run [可选参数] 镜像
# 参数说明
--name="Name"       #容器名字 tomcat1  tomcat2,用来区分容器
-d                             #后台方式运行
-it                             #使用交互方式运行,进入容器查看内容
-p                             #指定容器的端口   -p  8080:8080
        -p 主机端口:容器端口(常用)

        -p 容器端口
        容器端口

-P                             #随机指定端口 

# 例子 docker run -it centos /bin/bash

注意;当我们使用 docker run -d 镜像名,然后使用命令 docker ps 发现没有该容器在运行。

因为docker 容器使用后台运行,  就需要有一个前台进程, docker 发现没有应用,就会自动停止。

 

  • 列出所有运行的容器 

docker ps
# 可选项
-a          #列出当前正在运行的容器+带出历史运行过的容器
-n=?     #显示最近创建的容器         ?是指显示容器的数量
-q         #只显示容器的编号

  •  从容器中退回主机(直接停止容器并退出)

 exit

  •  从容器中退会主机(容器不停止并推出)

Ctrl + P + Q

 

  •  删除容器

docker rm 容器ID                                #删除指定的容器,不能删除正在运行的容器,如果要删除运行的容器  rm -f

docker rm -f $(docker ps -aq)             #删除所有的容器

  •  启动和停止容器的操作

docker start 容器ID                # 启动容器
docker restart 容器ID             # 重启容器
docker stop 容器ID                # 停止当前正在运行的容器
docker kill 容器ID                   # 强制停止当前容器

操作命令

  • 查看日志
     

docker logs -f -t --tail 容器
#参数
-tf                         # 显示日志,t 代表时间戳
--tail number        # 要显示日志条数

  • 查看容器中进程信息 ps
     

docker top 容器ID

 

  • 查看容器的元数据

docker inspect 容器ID

  • 进入当前正在运行的容器 (我们通常容器都是使用后台方式运行的,需要进入容器,修改一些配置)

# 进入容器后开启一个新的终端,可以在里面操作(常用)
docker exec -it  容器ID /bin/bash

docker attch 容器ID  (进入容器正在执行的终端,不会启动新的进程)

  • 从容器中拷贝文件到主机上

docker cp 容器ID:容器内路径   目的的主机路径

 

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

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

相关文章

【算法练习Day32】 斐波那契数爬楼梯使用最小花费爬楼梯

​📝个人主页:Sherry的成长之路 🏠学习社区:Sherry的成长之路(个人社区) 📖专栏链接:练题 🎯长路漫漫浩浩,万事皆有期待 文章目录 斐波那契数爬楼梯使用最小花…

所有电商API接口,淘宝API接口分类,1688API、拼多多API、京东API

前往接入API 淘宝API item_get 获取商品详情 根据商品ID查询商品标题价格描述等详情数据 淘宝API item_search 按关键字搜索商品 搜索关键字,显示商品总数,标题,图片,优惠价等数据 淘宝API item_fee 获取商品快递费用 输入商品…

基于RK3568高性价比全国产EMS储能解决方案(一)概述

储能产业链框架 储能产业链可分为上游“原材料及生产设备”、中游“储能系统”、下游“储能场景应用及后市场服务”。 图1 储能产业链框架图 产业链中游的“储能电池系统”主要包括“能量管理系统(EMS)”、“电池管理系统(BMS)”、“储能逆变器(PCS)”、“电池组”四个部分。…

Java创建一个长度为10的数组,利用Arrays.sort(), 为数组元素排序

程序要求:1)创建一个整型数组,数组的长度为10. 2)给数组元素赋值,要求乱序。 3)利用fori循环将数组元素依次输出。 4)利用Arrays.sort(), 为数组元素排序 5)采用增加for循环将排…

shell语法大全(超级详细!!!!),非常适合入门

本文旨在对y总的Linux基础课shell语法做学习记录,指令较多,方便日后查找。 参考视频:Linux基础课 参考教程:Linux教程 1 概论 Linux中常见的shell脚本有很多种,常见的有: Bourne Shell(/usr/bin/sh或/bi…

Evade Deep Image Retrieval by Stashing Private Images in the Hash Space

摘要: 挑战: 当网络上的图像被大规模检索并被用作个人信息的丰富矿藏时,隐私也面临着风险; 攻击者可以通过从目标类别中查询类似图像以查找任何可用模型来提取私有图像。 提出: 提出了一种基于对抗性示例的新机制…

Cesium绕点旋转

目录 项目地址实现效果实现方法 项目地址 https://github.com/zhengjie9510/webgis-demo 实现效果 实现方法 let angle 0.0 viewer.camera.lookAt(position, new Cesium.HeadingPitchRange(Cesium.Math.toRadians(angle), Cesium.Math.toRadians(-30), 2000)) viewer.clock…

Ubuntu自建git服务器

Ubuntu 安装 gitlab-ce sudo apt-get update sudo apt-get install gitlab-ce 安装成功 sudo apt-get install gitlab-ce 正在读取软件包列表... 完成 正在分析软件包的依赖关系树 正在读取状态信息... 完成 下列【新】软件包将被安装:gitlab-ce 升…

基于鸟群算法的无人机航迹规划-附代码

基于鸟群算法的无人机航迹规划 文章目录 基于鸟群算法的无人机航迹规划1.鸟群搜索算法2.无人机飞行环境建模3.无人机航迹规划建模4.实验结果4.1地图创建4.2 航迹规划 5.参考文献6.Matlab代码 摘要:本文主要介绍利用鸟群算法来优化无人机航迹规划。 1.鸟群搜索算法 …

koa搭建服务器(二)

在上一篇文章已经成功的运行了一个http服务器,接下来就是使用Sequelize ORM(官方文档:Sequelize 简介 | Sequelize中文文档 | Sequelize中文网)来操作数据库。 1、安装依赖 首先也是需要安装相关的依赖 npm i sequelize npm i …

【Mysql】数据库三大范式

数据库三范式 :数据库三范式是指关系型数据库设计中的三种规范化设计原则,旨在减少数据冗余、提高数据一致性和可维护性。 第一范式:规定表中的每一列都应该是不可分割的最小单元。 为什么要这样实现呢? :举个栗子…

【Unity PlasticSCM】记录:从介绍 下载 到拉取项目

实习的时候项目是svn管理的,这次mini的项目管理最后选择了美术策划友好的plasticSCM,但之前没有接触过,所以决定花费一点时间去了解,然后记录一下中间遇到的一些问题。 了解及下载Plastic b站很详细介绍PlasticSCM:Un…

ChatGPT扩展系列之ChatExcel

文章目录 ChatGPT扩展系列之ChatExcel对某一列的文字进行处理对数据进行排序对数据进行计算微软官方又推出Excel AI插件ChatGPT扩展系列之ChatExcel 自从ChatGPT很空出世之后,很多基于ChatGPT的应用便如雨后春笋般应用而生,这些应用的底层本质就是利用了ChatGPT对自然语言的…

计网强化

文章目录 1.TCP报文段、IP分组、MAC帧(1)TCP报文段 首部字段①发送窗口、接收窗口、拥塞窗口、滑动窗口(2)IP数据报 首部格式①片偏移量(3)MAC帧2.转发表、路由表、ARP表3.网络三层设备(1)集线器、交换机、路由器(2)冲突域与广播域(3)广播(4)时延

高等数学教材重难点题型总结(七)微分方程

高数上册最后一章,虽然不如积分难,但也颇为恶心,好在套路很固定,重点在于:区分方程类型,记忆求解公式~ 此外,诸如伯努利、欧拉方程等内容,是考研数学一的内容,学校的期末…

AI:40-基于深度学习的森林火灾识别

🚀 本文选自专栏:AI领域专栏 从基础到实践,深入了解算法、案例和最新趋势。无论你是初学者还是经验丰富的数据科学家,通过案例和项目实践,掌握核心概念和实用技能。每篇案例都包含代码实例,详细讲解供大家学习。 📌📌📌本专栏包含以下学习方向: 机器学习、深度学…

3 ALS算法的优化

3.1引入时间遗忘曲线 3.2引入物品特征 3.3时间特征和物品特征加权融合 ALS优化算法的执行步骤 将式(12)对原始评分矩阵进行优化,再代入 式(3)得到了优化后的ALS算法。该算法步骤如下: 第一步:读取数据集,初始化用户-物品评分

Illustrator 2024(AI v28.0)

Illustrator 2024是一款功能强大的矢量图形编辑软件,由Adobe公司开发。它是设计师、艺术家和创意专业人士的首选工具,用于创建和编辑各种矢量图形、插图、图标、标志和艺术作品。 以下是Adobe Illustrator的主要功能和特点: 矢量图形编辑&…

Kotlin协程核心理解

一、协程是什么? 1.1 基本概念的理解 我们知道JVM中的线程的实现是依赖其运行的操作系统决定的,JVM只是在上层进行了API的封装,包含常见的有线程的启动方法,状态的管理,比如:Java中抽象出了6种状态&#x…

软件测试自学路线

一、简介 本文从一个简单的登录接口测试入手,一步步调整优化接口调用姿势,然后简单讨论了一下接口测试框架的要点,最后介绍了一下我们目前正在使用的接口测试框架pithy。期望读者可以通过本文对接口自动化测试有一个大致的了解。 二、引言 …