云南建设厅网站监理员培训微信淘宝购物券网站是怎么做的
- 作者: 五速梦信息网
- 时间: 2026年04月20日 06:53
当前位置: 首页 > news >正文
云南建设厅网站监理员培训,微信淘宝购物券网站是怎么做的,漳州网站建设优化推广,互联网项目推广平台有哪些初识Docker
项目部署的问题
大型项目组件较多#xff0c;运行环境也较为复杂#xff0c;部署时会碰到一些问题:
依赖关系复杂#xff0c;容易出现兼容性问题开发、测试、生产环境有差异
Docker
Docker如何解决依赖的兼容问题的?
将应用的Libs(函数库)、 Deps#xf…初识Docker
项目部署的问题
大型项目组件较多运行环境也较为复杂部署时会碰到一些问题:
依赖关系复杂容易出现兼容性问题开发、测试、生产环境有差异
Docker
Docker如何解决依赖的兼容问题的?
将应用的Libs(函数库)、 Deps依赖)、配置与应用一起打包将每个应用放到一个隔离容器去运行避免互相干扰
不同环境的操作系统不同Docker如何解决?我们先来了解下操作系统结构 Docker将用户程序与所需要调用的系统(比如Ubuntu)函数库一起打包 Docker运行到不同操作系统时直接基于打包的库函数借助于操作系统的Linux内核来运行
Docker如何解决大型项目依赖关系复杂不同组件依赖的兼容性问题?
Docker允许开发中将应用、依赖、函数库、配置一起打包形成可移植镜像Docker应用运行在容器中使用沙箱机制相互隔离
Docker如何解决开发、测试、生产环境有差异的问题
Docker镜像中包含完整运行环境包括系统函数库仅依赖系统的Linux内核因此可以在任意Linux操作系统上运行
Docker与虚拟机
虚拟机(virtual machine)是在操作系统中模拟硬件设备然后运行另一个操作系统比如在Windows 系统里面运行Ubuntu系统这样就可以运行任意的Ubuntu应用了。
特性Docker虚拟机性能接近原生性能较差硬盘占用一般为MB一般为GB启动秒级分钟级
Docker和虚拟机的差异:
docker是一个系统进程;虚拟机是在操作系统中的操作系统docker体积小、启动速度快、性能好;虚拟机体积大、启动速 度慢、性能一般
镜像和容器
Docker将应用程序及其所需的依赖、函数库、环境、配置等文件打包在一起称为镜像。
镜像(Image) : Docker将应用程序及其所需的依赖、函数库、环境、配置等文件打包在一起称为镜像。 容器(Container)∶镜像中的应用程序运行后形成的进程就是容器只是Docker会给容器做隔离对外不可见。
Docker和DockerHub DockerHub: DockerHub是一个Docker镜像的托管平台。这样的平台称为Docker Registry. 国内也有类似于DockerHub 的公开服务比如网易云镜像服务、阿里云镜像库等。
docker架构
Docker是一个CS架构的程序由两部分组成:
服务端(server): Docker守护进程负责处理Docker指令管理镜像、容器等客户端(client):通过命令或RestAPI向Docker服务端发送指令。可以在本地或远程向服务端发送指令。 安装Docker
企业部署一般都是采用Linux操作系统而其中又数CentOS发行版占比最多因此我们在CentOS下安装Docker。
卸载
如果之前安装过旧版本的Docker可以使用下面命令卸载
yum remove docker \docker-client \docker-client-latest \docker-common \docker-latest \docker-latest-logrotate \docker-logrotate \docker-selinux \docker-engine-selinux \docker-engine \docker-ce安装
安装yum工具
yum install -y yum-utils \device-mapper-persistent-data \lvm2 –skip-broken更新本地镜像源
设置docker镜像源
yum-config-manager --add-repo \https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.reposed -i s/download.docker.com/mirrors.aliyun.com\/docker-ce/g /etc/yum.repos.d/docker-ce.repoyum makecache fast然后输入命令 yum install -y docker-cedocker-ce为社区免费版本。稍等片刻docker即可安装成功。 启动docker Docker应用需要用到各种端口逐一去修改防火墙设置。非常麻烦因此建议大家直接关闭防火墙
关闭
systemctl stop firewalld
禁止开机启动防火墙
systemctl disable firewalld通过命令启动docker
systemctl start docker # 启动docker服务systemctl stop docker # 停止docker服务systemctl restart docker # 重启docker服务然后输入命令可以查看docker版本
docker -v配置镜像加速
docker官方镜像仓库网速较差我们需要设置国内镜像服务
参考阿里云的镜像加速文档https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors
Docker基本操作
镜像相关命令 镜像名称一般分两部分组成:[repository]:[tag]. 在没有指定tag时默认是latest代表最新版本的镜像 容器相关命令 创建运行一个Nginx容器
步骤一:去docker hub查看Nginx的容器运行命令
docker run –name 容器名称 -p 80:80 -d nginx命令解读: docker run :创建并运行一个容器 –name:给容器起一个名字比如叫做myNginx -p︰将宿主机端口与容器端口映射冒号左侧是宿主机端口右侧是容器端口 -d:后台运行容器
docker run命令的常见参数有哪些?
–name:指定容器名称-p︰指定端口映射-d:让容器后台运行
查看容器日志的命令:
docker logs 添加-f参数可以持续查看日志
查看容器状态:
docker ps
进入容器修改Nginx首页内容
步骤一:进入容器。进入我们刚刚创建的nginx容器的命令为:
docker exec -it myNginx bash命令解读: docker exec :进入容器内部执行一个命令 it:给当前进入的容器创建一个标准输入、输出终端允许我们与容器交互 myNginx :要进入的容器的名称 bash:进入容器后执行的命令bash是一个linux终端交互命令
步骤二:进入nginx的HTML所在目录/usr/share/nginx/html
cd /usr/share/nginx/html步骤三:修改index.html的内容
sed -i s#Welcome to nginx#你好这是标题#g index.html
sed -i s#head#headmeta charsetutf-8#g index.html查看容器状态:
docker ps
添加-a参数查看所有状态的容器删除容器:
docker rm不能删除运行中的容器除非添加-f参数
进入容器:
命令是docker exec -it [容器名][要执行的命令]exec命令可以进入容器修改文件但是在容器内修改文件是不推荐的
数据卷
容器与数据耦合的问题 不便于修改 当我们要修改Nginx的html内容时需要进入容器内部修改很不方便。 数据不可复用 在容器内的修改对外是不可见的。所有修改对新创建的容器是不可复用的。 升级维护困难 数据在容器内如果要升级容器必然删除旧容器所有数据都跟着删除了
数据卷(volume)是一个虚拟目录指向宿主机文件系统中的某个目录。
操作数据卷
数据卷操作的基本语法如下:
docker volume [COMMAND]docker volume命令是数据卷操作根据命令后跟随的command来确定下一步的操作: create 创建一个volume inspect 显示一个或多个volume的信息 ls 列出所有的volume prune 删除未使用的volume rm 删除一个或多个指定的volume
案列 创建一个数据卷并查看数据卷在宿主机的目录位置 创建数据卷 docker volume create html查看所有数据 docker volume ls查看数据卷详细信息卷 docker volume inspect htmlpoweroff
挂载数据卷
我们在创建容器时可以通过-v参数来挂载一个数据卷到某个容器目录
docker run
–name mn
-v html:/root/html
-p 8080:80
nginx \
docker run : 就是创建并运行容器– name mn: 给容器起个名字叫mn-v html:/root/htm : 把html数据卷挂载到容器内的/root/html这个目录中-p 8080:80: 把宿主机的8080端口映射到容器内的80端口nginx: 镜像名称
如果容器创建时volume不存在会自动被创建出来
还可以直接挂载目录与文件:
-v [宿主机目录]:[容器内目录]-v [宿主机文件]:[容器内文件]
数据卷挂载的方式对比
docker run的命令中通过-v参数挂载文件或目录到容器中∶ -v volume名称:容器内目录-v 宿主机文件:容器内文件-v 宿主机目录:容器内目录 数据卷挂载与目录直接挂载的 数据卷挂载耦合度低由docker来管理目录但是目录较深不好找目录挂载耦合度高需要我们自己管理目录不过目录容易寻找查看
Dockerfile自定义镜像
镜像结构 镜像是分层结构每一层称为一个Layer
Baselmage层:包含基本的系统函数库、环境变量、文件系统Entrypoint: 入口是镜像中应用启动的命令其它:在Baselmage基础上添加依赖、安装程序、完成整个应用的 安装和配置
什么是Dockerfile
Dockerfile就是一个文本文件其中包含一个个的指令(Instruction)用指令来说明要执行什么操作来构建镜像。每一个指令都会形成一层Layer。
指令说明示例FROM指定基础镜像FROM centos:6ENV设置环境变量可在后面指令使用ENV key valueCOPY拷贝本地文件到镜像的指定目录COPY ./mysql-5.7.rpm /tmpRUN执行Linux的shell命令一般是安装过程的命令RUN yum install gccEXPOSE指定容器运行时监听的端口是给镜像使用者看的EXPOSE 8080ENTRYPOINT镜像中应用的启动命令容器运行时调用ENTRYPOINT java -jar xx.jar
更新详细语法说明请参考官网文档: Dockerfile reference | Docker Documentation 案例
基于Ubuntu镜像构建一个新镜像运行一个java项目 步骤1:新建一个空文件夹docker-demo 步骤2:拷贝docker-demo.jar文件到docker-demo这个目录 步骤3:拷贝jdk8.tar.gz文件到docker-demo这个目录 步骤4:拷贝Dockerfile到docker-demo这个目录 # 指定基础镜像
FROM ubuntu:16.04
配置环境变量JDK的安装目录
ENV JAVA_DIR/usr/local# 拷贝jdk和java项目的包 COPY ./jdk8.tar.gz \(JAVA_DIR/ COPY ./docker-demo.jar /tmp/app.jar# 安装JDK RUN cd \)JAVA_DIR \ tar -xf ./jdk8.tar.gz \ mv ./jdk1.8.0_144 ./java8# 配置环境变量 ENV JAVA_HOME\(JAVA_DIR/java8 ENV PATH\)PATH:$JAVA_HOME/bin# 暴露端口 EXPOSE 8090
入口java项目的启动命令
ENTRYPOINT java -jar /tmp/app.jar步骤5:进入docker-demo 步骤6:运行命令: docker build -t javaweb:1.0 . # .表示dockerfile所在目录也可以直接基于java:8-alpine他直接集成了java8 Dockerfile的本质是一个文件通过指令描述镜像的构建过程Dockerfile的第一行必须是FROM从一个基础镜像来构建基础镜像可以是基本操作系统如Ubuntu。也可以是其他人制作好的镜像例如: java:8-alpine DockerCompose 什么是DockerCompose Docker Compose可以基于Compose文件帮我们快速的部署分布式应用而无需手动一个个创建和运行容器!Compose文件是一个文本文件通过指令定义集群中的每个容器如何运行。 version: 3.8services:mysql:image: mysql:5.7.25environment:MYSQL_ROOTPASSWORD: 123volumes:- /tmp/mysql/data:/var/lib/mysql- /tmp/mysql/conf/hmy.cnf:/etc/mysql/conf.d/hmy.cnfweb:build: .ports:- 8090:8090DockerCompose的详细语法参考官网: Overview | Docker Documentation 部署微服务 将之前学习的cloud-demo微服务集群利用DockerCompose部署 实现思路如下: DockerCompose内部服务之间会通过服务名找到对应服务的ip地址 Docker镜像仓库 常见镜像仓库服务 镜像仓库Docker Registry 有公共的和私有的两种形式: 公共仓库:例如Docker官方的Docker Hub国内也有一些云服务商提供类似于Docker Hub的公开服务比如网易云镜像服务、DaoCloud镜像服务、阿里云镜像服务等。除了使用公开仓库外用户还可以在本地搭建私有Docker Registry。企业自己的镜像最好是采用私有DockerRegistry来实现。 搭建镜像仓库可以基于Docker官方提供的DockerRegistry来实现。 官网地址https://hub.docker.com//registry 简化版镜像仓库 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 可以查看当前私有镜像服务中包含的镜像 带有图形化界面版本 使用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:- registry配置Docker信任地址 我们的私服采用的是http协议默认不被Docker信任所以需要做一个配置
打开要修改的文件
vi /etc/docker/daemon.json
添加内容
insecure-registries:[http://192.168.150.101:8080]
重加载
systemctl daemon-reload
重启docker
systemctl restart docker在私有镜像仓库推送或拉取镜像 推送镜像到私有镜像服务必须先tag步骤如下: 重新tag本地镜像名称前缀为私有仓库的地址:192.168.150.101:8080/ docker tag nginx:latest 192.168.150.101:8080/nginx:1.0推送镜像 docker push 192.168.150.101:8080/nginx:1.0拉取镜像 docker pull 192.168.150.101:8080/nginx:1.0服采用的是http协议默认不被Docker信任所以需要做一个配置
打开要修改的文件
vi /etc/docker/daemon.json
添加内容
insecure-registries:[http://192.168.150.101:8080]
重加载
systemctl daemon-reload
重启docker
systemctl restart docker在私有镜像仓库推送或拉取镜像 推送镜像到私有镜像服务必须先tag步骤如下: 重新tag本地镜像名称前缀为私有仓库的地址:192.168.150.101:8080/ docker tag nginx:latest 192.168.150.101:8080/nginx:1.0推送镜像 docker push 192.168.150.101:8080/nginx:1.0拉取镜像 docker pull 192.168.150.101:8080/nginx:1.0
- 上一篇: 云南建设厅和网站html5 响应式网站
- 下一篇: 云南建设厅网站删除为何打不开中国建设银行网站
相关文章
-
云南建设厅和网站html5 响应式网站
云南建设厅和网站html5 响应式网站
- 技术栈
- 2026年04月20日
-
云南固恒建设集团有限公司网站公众号怎么绑定网站吗
云南固恒建设集团有限公司网站公众号怎么绑定网站吗
- 技术栈
- 2026年04月20日
-
云南 网站建设wordpress用户邮箱验证码
云南 网站建设wordpress用户邮箱验证码
- 技术栈
- 2026年04月20日
-
云南建设厅网站删除为何打不开中国建设银行网站
云南建设厅网站删除为何打不开中国建设银行网站
- 技术栈
- 2026年04月20日
-
云南建设银行官方网站湖北政务服务网
云南建设银行官方网站湖北政务服务网
- 技术栈
- 2026年04月20日
-
云南科技网站建设四博互联做的网站
云南科技网站建设四博互联做的网站
- 技术栈
- 2026年04月20日
