| |
|
开发:
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最全总结 |
docker介绍及其常用命令1.为什么要用到docker?在我们实际业务中,原生技术的微服务的部署十分麻烦,例如我们安装redis,Ubuntu和Centos的命令也有差异,安装MySQL,不同操作系统和环境底层的函数库和依赖可能会有差异,导致实际部署时问题千奇百怪,由此docker就是来解决这样的问题的 docker可以把各个组件所依赖的函数库等一并打包为镜像,方便各个组件和微服务的部署 2.安装docker2.1卸载旧版本如果安装过旧版本的docker,用列命令修改:
2.2安装docker
更新本地镜像源
输入命令安装docker-ce社区免费版本
2.3启动dockerdocker在使用时需要配置到多个端口,如果你项目在开发阶段,不是部署到服务器,而是本机,那么我建议你关闭防火墙,如果你需要发布到云服务器上,那么一定要记住你用到的端口,开放你需要的端口,否则无法访问 关闭防火墙:
命令启动docker:
查看版本:
2.4配置镜像加速docker官方镜像仓库网速较差,我们需要设置国内镜像服务: 参考阿里云的镜像加速文档:https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors. 2.4.1 安装/升级Docker客户端推荐安装1.10.0以上版本的Docker客户端,参考文档docker-ce 2.4.2 配置镜像加速器针对Docker客户端版本大于 1.10.0 的用户 您可以通过修改daemon配置文件/etc/docker/daemon.json来使用加速器
3.Centos7安装DockerComposeDockerCompose可以帮助我们快速部署分布式应用,无需一个个微服务去构建镜像和部署。 3.1下载Linux可通过命令下载:
3.2修改文件权限
4.Docker镜像仓库众所周知,dockerHub也是一个镜像仓库,但是如果我们公司或者团队内,不可能把自己制作的镜像上传到公共的平台吧?所以,我们需要一个私有仓库,如何搭建一个私有仓库,这节就教大家 4.1基础仓库输入如下命令:
命令中挂载了一个数据卷registry-data到容器内的/var/lib/registry 目录,这是私有镜像库存放数据的目录。 访问http://YourIp:5000/v2/_catalog 可以查看当前私有镜像服务中包含的镜像 4.2图形化界面仓库输入命令:
4.3配置信任地址我们的私服采用的是http协议,默认不被Docker信任,所以需要做一个配置,客户端上传(push)时,如果不配置信任,就会被拦截,所以我们需要做一些修改
然后在原有的字段后,根据json语法,加个逗号和回车,输入:
重新加载:
重启docker
5.docker常用命令5.1镜像操作5.1.1拉取镜像去镜像仓库(DockerHub)拉取一个nginx,如果nginx后不加版本号默认最新的。
5.1.2查看镜像
5.1.3保存镜像有时候我们想通过物理介质拷贝给队友,需要将镜像拷贝一份,我们可以保存为一个tar.gz文件
5.1.4删除镜像
5.1.5导入加载镜像我们导入别人的tar.gz镜像文件,命令如下
5.2容器操作镜像可以创建一个容器 5.2.1创建并运行容器例如:创建并运行nginx容器的命令:
命令解读:
5.2.2进入容器,修改文件
命令解读:
5.2.3查看容器日志正常看日志:
如果要持续追踪日志,查看日志变化需要加入 -f 参数 5.2.4查看容器状态查看正在运行的容器
查看所有的容器
5.2.5暂停,停止,重启,删除一个容器
5.3数据卷操作命令5.3.1创建和查看数据卷
5.3.2查看所有数据
5.3.3查看数据卷详细信息
得到如下数据
name就是数据卷名字,Mountpoint就是关联的宿主机目录 5.3.4删除数据卷删除指定数据卷
删除所有未使用的数据卷
5.3.5挂载数据卷我们在创建容器时,可以通过 -v 参数来挂载一个数据卷到某个容器内目录,命令格式如下:
这里的-v就是挂载数据卷的命令:
例如我们想修改容器中的文件,我们可以创建一个卷,挂载到容器中,这样我们就可以使用真实操作系统中的高级编辑工具编辑文件了 6.Dockerfile语法构建自定义的镜像时,并不需要一个个文件去拷贝,打包。 我们只需要告诉Docker,我们的镜像的组成,需要哪些BaseImage、需要拷贝什么文件、需要安装什么依赖、启动脚本是什么,将来Docker会帮助我们构建镜像。 而描述上述信息的文件就是Dockerfile文件。 Dockerfile文件其实就是一个个命令的集合,可以理解为shell脚本文件,按顺序执行命令 详细语法说明,请参考官网文档: https://docs.docker.com/engine/reference/builder 目录如下:
http://xxx.xxx.xxx.xxx:8090/hello/count 有一个更加简便的方法,基于java:8-alpine镜像,配置jdk等繁琐的步骤都可以省略,可以快速将java项目做为镜像 上述实例代码就可改成这样
7.Docker-Compose7.1示例Docker Compose可以基于Compose文件帮我们快速的部署分布式应用,而无需手动一个个创建和运行容器! 例如我有如下的项目需要发布: gateway文件夹(其他文件类似):
DockerCompose的详细语法参考官网:https://docs.docker.com/compose/compose-file/ 7.2部署进入Docker-Compose所在的目录,然后运行下面的命令:
8.Docker镜像仓库推送镜像到私有镜像服务必须先tag,以nginx为例,步骤如下: ① 重新tag本地镜像,名称前缀为私有仓库的地址:xxx.xxx.xxx.xxx:8080/
② 推送镜像
③ 拉取镜像
|
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
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/16 0:30:15- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |