| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 系统运维 -> Docker基础应用 -> 正文阅读 |
|
[系统运维]Docker基础应用 |
目录 前言????????本文为学习笔记,记录一些doker的简单操作和流程,目的是方便开发,和便于后期查找、回忆。 一、Docker简介概述????????Docker是一个虚拟化平台(官网 https://www.docker.com/),诞生于 2013 年初,基于 Google 公司的 Go 语言进行实现。可以通过虚拟化方式,为应用提供可运行的容器。基于这种方式,可更快地打包、测试以及部署应用程序。 Docker核心对象镜像(Image)????????Docker 镜像是一个特殊的文件系统,除了提供容器运行时所需的程序、库、资源、配置等文件外,还包含了一些为运行时准备的一些配置参数(如匿名卷、环境变量、用户等)。例如JDK镜像、Centos镜像、MySQL镜像等。 容器(Container)????????Docker容器可以将其理解为一个运行镜像的载体,镜像(Image)和容器(Container)的关系,就像是光盘和光驱。容器基于镜像创建、启动,然后运行镜像的中的文件。 Docker应用架构分析架构图Docker 是一种Client/Server架构的应用程序,如图所示:
Docker运行机制docker pull 执行过程: (1)客户端将指令发送给docker daemon docker run 执行过程: (1)检查本地是否存在指定的镜像,不存在就从公有仓库下载 二、Docker安装及基本操作卸载Docker假如已经有docker,可通过执行如下指令卸载Docker:
安装Docker在线安装第一步:安装一组工具
?第二步:设置 yum 仓库地址
第三步:更新 yum 缓存
第四步:安装新版 docker
第五步:查看docker 安装状态
第六步:启用Docker镜像加速(选做) 由于国内网络问题,需要配置加速器来加速。修改配置文件 /etc/docker/daemon.json
?说明:在执行如上指令时,保证你的登录用户为root管理员用户,并且设置好以后重启docker服务。 Docker基本操作启动服务
查看Docker状态
设置Docker开机自启
禁用Docker开机自启
重新启动Docker服务
查看Docker信息
停止docker服务
三、Docker常用操作Docker镜像操作下载镜像语法:docker pull 镜像名
浏览镜像文件
查看镜像详情语法:docker inspect 镜像名或镜像id
查看镜像历史
导出镜像文件镜像导出(linux系统中的镜像文件下载到本地,例如window),导出后给他人使用。
删除镜像文件语法:docker image rm 镜像名或镜像id
导入镜像文件镜像导入(要在hello-world.tar.gz 文件所在目录下执行)
运行镜像文件基于镜像,启动容器运行。
Docker容器操作以CentOS镜像为例,来测试容器的基本操作。 下载镜像通过docker pull指令下载CentOS镜像:
注:官方镜像仓库地址为 https://hub.docker.com/
创建并启动容器基本语法解析:
其中: 通过docker启动运行 centos7镜像:
查看Docker中的容器查看docker运行中的容器:
查看docker运行中的所有容器:
查看容器日志信息查看后台运行的容器输出结果,假如容器没有启动,要通过此指令去看一下错误日志。
停止或重启容器停止运行中的容器:
重新启动容器:
进入指定容器当需要进入容器进行操作时(容器运行着),可以使用 docker exec 命令:
退出容器假如从宿主机进入了启动的容器,退出容器需要使用exit指令:
删除容器假如容器不用了,可执行删除操作:
注:如果删除运行中的容器,需要添加 -f 参数。 清理所有终止状态容器:
Docker数据卷操作数据卷????????数据卷是一个可供一个或多个容器使用的特殊目录,可以在容器之间共享和重用,默认会一直存在,即使容器被删除。 数据卷操作第一步:创建数据卷
第二步:查看所有数据卷
查看指定 数据卷 的信息:
查询的结果:
第三步:启动挂载数据卷的容器
注:-v container-vol:/root 是把数据卷 container-vol 挂载到容器的 /root 目录 第四步:删除数据卷(如果数据卷被容器使用则无法删除)
清理无主数据卷:
挂载主机目录我们还可以在启动容器时,以目录直接挂载的方式进行数据操作:
其中: 查看挂载目录信息:
显示结果:
四、Dockerfile镜像制作概述????????Dockerfile 是一个用来构建镜像的文本文件,文本内容包含了一条条构建镜像所需的指令和说明。我们通常会基于此文件创建docker镜像。 准备工作1、centos:7镜像,(所有的镜像文件创建时都需要有一个空的centos镜像,就类似通过一个空的光盘或u盘创建一个系统启动盘是一样的) 2、jdk压缩包,jdk-8u51-linux-x64.tar.gz(可以从官网去下载:oracle.org),基于此压缩包,制作jdk镜像。 Dockerfile文件????????在创建新的镜像时都需要有一个Dockerfile文件(文件名一定要注意大小写),这个文件要与资源放在一起(例如下载好的jdk),我们可以通过linux系统中的touch指令创建此文件(touch Dockerfile) ????????现在,以centos7为基础,构建oracle jdk8的镜像,首先通过Vim打开Dockerfile,这个文件不存在会自动创建。然后进入编辑模式(i),在编辑模式下可以拷贝如下语句(确保写的单词正确,大小写,空格)。 第一步:编写FROM语句(关键字一定要大写,例如FROM不能小写)
第二步:通过ADD命令将宿主机中的压缩包传入镜像容器中的指定目录,并同时解压缩(可以添加多个压缩包)
第三步:设置环境变量(通过ENV关键字实现,目录启动容器中的目录)
第四步:指定命令行操作(所有指令与后面内容要有空格)
完整示例如下:
使用 Dockerfile 构建镜像(Dockerfile所在目录执行docker指令):
注:末尾的点,表示构建过程中从当前目录寻找文件,jdk:8为我们创建的镜像名。 运行镜像文件
进入容器以后,可以通过echo $PATH查看环境变量,并可以通过java -version查看JDK版本信息。 示例:制作Sentinel镜像第一步:定义Dockerfile文件,同时将jdk,sentinel也要和这个文件放在同一个目录
第二步:使用 Dockerfile 构建镜像(在Dockerfile所在目录执行docker指令)
第三步:运行sentinel容器
如果要做目录的挂载,保存容器中的日志,可参考如下方式:
第四步:查看sentinel容器
如果看不到容器,可通过 "docker container logs 容器id" 方式查看容器状态。 第五步:访问sentinel服务 访问时,ip地址应该为宿主机的ip地址,端口号为宿主机的端口号。 五、Docker容器互联简介????????Docker 中存在多个容器时,容器与容器之间经常需要进行通讯,例如nacos访问mysql,redis集群中各个节点之间的通讯。 解决方案Docker 中容器与容器之间进行通讯的解决方案一般有两种: 创建网络例如:创建名字为t-net的网络
其中,-d driver,网络类型,默认 bridge。 查看网络信息列出所属有网络
查看网络信息
实现容器互联打开终端,基于centos:7这个镜像启动容器,并加入到t-net这个网络
新开终端执行,基于centos:7这个镜像再启动容器,同时也加入到t-net网络
测试网络互通在两个终端中分别执行:
显示如下:
|
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/15 14:50:47- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |