网站建设哪家好服务,网页设计培训包就业,wordpress 后端,数字化转型文章目录 Docker介绍安装DockerDocker基础操作Docker服务的启动镜像命令容器命令1. 从docker hub去查看Nginx容器的运行命令2. 查看所有容器状态3. 查看容器日志4. 进入Nginx容器执行命令#xff0c;修改Html内容#xff0c;添加“Hello World”5. 停止与开始容器6. 删除容器… 文章目录 Docker介绍安装DockerDocker基础操作Docker服务的启动镜像命令容器命令1. 从docker hub去查看Nginx容器的运行命令2. 查看所有容器状态3. 查看容器日志4. 进入Nginx容器执行命令修改Html内容添加“Hello World”5. 停止与开始容器6. 删除容器 数据卷1. 为什么需要数据卷2. 数据卷的操作3. 数据卷的挂载4. 目录与文件挂载 Dockerfile自定义镜像DockerCompose集群部署镜像仓库1.简化版镜像仓库2.带有图形化界面版本3.配置Docker信任地址 Docker介绍
大项目组件多运行环境复杂
每个组件需要的依赖和函数库可能版本不同容易不兼容开发、测试、生产环境有差异甚至操作系统都不一样 Docker可以在任何Linux机器上一键部署一键移除
Docker与虚拟机区别
Docker直接用打包的系统函数库调用OS内核性能较好硬盘占用小启动快虚拟机需要用函数库调用模拟的OS指令经过Hypevisor转换后调用真正OS的内核性能一般硬盘占用大启动慢 DockerRegistry: 镜像托管服务器DockerHub、阿里云镜像
安装Docker
Docker安装和配置
Docker基础操作
Docker服务的启动
systemctl enable docker # 开机自启
service start docker在命令后加上--help就能打开帮助文档
镜像命令 官方镜像拉取参考DockerHub网站 下面我们要
拉取一个nginx镜像查看镜像将其保存成tar删除dokcer中的nginx镜像从tar中加载这个镜像对这个镜像打标签说明这是我们开发的第一个版本
docker pull nginx[:tag] # 拉取镜像不指定版本就自动拉取最新版tag为latest
docker images # 查看镜像
docker save -o nginx.tar nginx:latest # 保存镜像到tar压缩文件-o是output后面跟要保存到的文件名
docker rmi nginx:latest# 删除镜像
docker load -i nginx.tar# 加载刚刚保存的镜像-i是input后面跟镜像压缩包文件名
docker tag nginx:latest mynginx:1.0 # 给一个镜像打标签为mynginx:1.0容器命令 下面我们要
1. 从docker hub去查看Nginx容器的运行命令
容器一开始是完全隔离的端口映射就是暴露一个接口可以理解成和宿主机之间接了条通道只有宿主机能把请求给它 容器端口一般取决于应用本身很少变化宿主机端口可以任意指定可用的 具体怎么启动建议在DockerHub中搜索
docker run --name mynginx -p 80:80 -d nginx2. 查看所有容器状态
默认只能查看到未被停止的加-a能看到所有
docker ps3. 查看容器日志
docker logs mynginx # 查看日志
docker logs -f mynginx # 持续跟踪显示日志-ffollow4. 进入Nginx容器执行命令修改Html内容添加“Hello World”
实际工作中不建议在容器内修改文件
docker exec: 进入容器内部执行一个命令-it interaction terminal 给当前进入的容易创建一个标准输入输出终端bash是这里进入容器后要执行的命令它本身是一个指令处理器
docker exec -it mynginx bashdocker容器里有一套自己的简易文件系统 找到nginx的html页面并打开查看
cd /usr/share/nginx/html/
cat index.html修改html内容
sed -i s#Welcome to nginx#Hello World#g index.html
sed -i s#head#headmeta charsetutf-8#g index.html5. 停止与开始容器
docker stop mynginx
docker start mynginx6. 删除容器
docker rm mynginx # 要先停止容器
docker rm -f mynginx # 强制删除数据卷
1. 为什么需要数据卷 怎么修改容器中的文件呢
使用一个虚拟目录交给容器使用实际上对应的是宿主机的一个真实目录。如果多个虚拟目录挂载在同一个真实目录上还能完成文件共享就算容器被删了文件还是在宿主机文件夹里
2. 数据卷的操作
创建数据卷
docker volume create myvolume列出所有数据卷
docker volume ls查看数据卷详细信息
docker volume inspect myvolume删除未使用的数据卷
docker volume prune删除指定数据卷
docker volume rm myvolume3. 数据卷的挂载
在创建容器的时候通过-v参数将一个数据卷挂载到某个容器目录如果没有这个数据卷会自动创建一个
docker run\--name mn\-v myvolume:/usr/share/nginx/html\ # 把myvolume数据卷挂载到容器内的/usr/share/nginx/html这个目录上-p 80:80\nginx4. 目录与文件挂载
也可以直接把宿主机目录挂载到某个容器目录 挂载文件会直接覆盖容器内的文件
Dockerfile自定义镜像
分层方便迭代只用改上面几层
DockerCompose集群部署
可以基于Compose文件快速部署分布式应用无需手动逐个创建和运行容器 Compose文件是个文本文件夹通过指令定义集群中每个容器如何运行内容约等于多个docker run的集合 详情参考官网DockerCompose文档
安装dockerCompose
使用DockerCompose部署微服务 最好先自己部署好Nacos再一键部署其他微服务否则找不到地方注册
镜像仓库
仓库也可以自己建私有仓库 搭建镜像仓库可以基于Docker官方提供的DockerRegistry来实现。
官网地址https://hub.docker.com/_/registry
1.简化版镜像仓库
Docker官方的Docker Registry是一个基础版本的Docker镜像仓库具备仓库管理的完整功能但是没有图形化界面。
搭建方式比较简单命令如下
docker run -d \--restartalways \--name registry \-p 5000:5000 \-v registry-data:/var/lib/registry \registry命令中挂载了一个数据卷registry-data到容器内的/var/lib/registry 目录这是私有镜像库存放数据的目录。
访问http://YourIp:5000/v2/_catalog 可以查看当前私有镜像服务中包含的镜像
2.带有图形化界面版本
使用DockerCompose部署带有图象界面的DockerRegistry命令如下
version: 3.0
services:registry:image: registryvolumes:- ./registry-data:/var/lib/registryui:image: joxit/docker-registry-ui:staticports:- 8080:80environment:- REGISTRY_TITLE私有仓库- REGISTRY_URLhttp://registry:5000depends_on:- registry3.配置Docker信任地址
我们的私服采用的是http协议默认不被Docker信任所以需要做一个配置
# 打开要修改的文件
vi /etc/docker/daemon.json
# 添加内容
insecure-registries:[http://192.168.150.101:8080]
# 重加载
systemctl daemon-reload
# 重启docker
systemctl restart docker