外贸公司网站开发步骤衡阳市建设局网站

当前位置: 首页 > news >正文

外贸公司网站开发步骤,衡阳市建设局网站,个人网页制作完整教程,汝阳县住房与城乡建设局建局网站1.docker的介绍 Docker 是一个开源的应用容器引擎#xff0c;基于 Go语言 并遵从 Apache2.0 协议开源。Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中#xff0c;然后发布到任何流行的 Linux 机器上#xff0c;也可以实现虚拟化。容器是完全使…1.docker的介绍 Docker 是一个开源的应用容器引擎基于 Go语言 并遵从 Apache2.0 协议开源。Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中然后发布到任何流行的 Linux 机器上也可以实现虚拟化。容器是完全使用沙箱机制相互之间不会有任何接口类似 iPhone 的 app,更重要的是容器性能开销极低。 Docker 是一个用于开发交付和运行应用程序的开放平台。Docker 使您能够将应用程序与基础架构分开从而可以快速交付软件。借助 Docker您可以与管理应用程序相同的方式来管理基础架构。通过利用 Docker 的方法来快速交付测试和部署代码您可以大大减少编写代码和在生产环境中运行代码之间的延迟。 镜像将应用所需的函数库、依赖、配置等与应用一起打包得到的就是镜像模板 容器为每个镜像的应用进程创建的隔离运行环境就是容器实例 镜像仓库存储和管理镜像的地方就是镜像仓库DockerHub是目前最大的镜像仓库其中包含各种常见的应用镜像 2.docker的安装 2.1 卸载旧版本 sudo yum remove docker \docker-client \docker-client-latest \docker-common \docker-latest \docker-latest-logrotate \docker-logrotate \docker-engine2.2 设置Docker仓库 yum-utils 提供了 yum-config-manager 并且 device mapper 存储驱动程序需要 device-mapper-persistent-data 和 lvm2 sudo yum install -y yum-utils截图如下
官方docker仓库 sudo yum-config-manager –add-repo https://download.docker.com/linux/centos/docker-ce.repo华为源 sudo yum-config-manager –add-repo https://mirrors.huaweicloud.com/docker-ce/linux/centos/docker-ce.repo sudo sed -i sdownload.docker.commirrors.huaweicloud.com/docker-ce /etc/yum.repos.d/docker-ce.repo阿里docker仓库 sudo yum-config-manager –add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo sudo sed -i sdownload.docker.commirrors.aliyun.com/docker-ce /etc/yum.repos.d/docker-ce.repo清华docker仓库 sudo yum-config-manager –add-repo https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/centos/docker-ce.repo腾讯源 yum-config-manager –add-repohttps://mirrors.cloud.tencent.com/docker-ce/linux/centos/docker-ce.repo建议使用国内源等 2.3 安装 Docker Engine-Community yum install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin2.4 配置docker hub加速器国内源 sudo vi /etc/docker/daemon.json修改内容如下 { registry-mirrors: [ https://registry.docker-cn.com,http://hub-mirror.c.163.com,https://hub.geekery.cn,https://dockerpull.com,https://docker.m.daocloud.io,https://docker.mirrors.ustc.edu.cn]
}加载配置启动Docker服务查看镜像是否配置成功 sudo systemctl daemon-reload
sudo systemctl start docker sudo docker info在输出信息中你应该能看到Registry Mirrors部分并且列出了你添加的镜像源地址
2.5 设置docker开机自启 systemctl enable docker也有停止(stop)重启(restart)检查状态(status)命令 2.6 创建mysql容器 docker run -d –name mysql -p 3306:3306 -e TZAsia/Shanghai -e MYSQL_ROOT_PASSWORD12345678 mysql3.docker的常见命令 所有命令都可以通过–help进行查看 3.1 命令解读 docker run -d –name mysql -p 3306:3306 -e TZAsia/Shanghai -e MYSQL_ROOT_PASSWORD12345678 mysql命令解释 docker run 创建并运行一个容器 -d 是让容器在后台运行 –name mysql 给容器起个名字必须唯一 -p 3306:3306 设置端口映射 -e KEYVALUE 是设置环境变量 mysql 指定运行的镜像名称镜像命名规范 镜像名称一般分两部分组成[repository]:[tag] 其中repository就是镜像名tag是镜像的版本 在没有指定tag时默认是latest代表最新版本的镜像 常见命令图 详见官方文档 3.2 镜像命令 可以从 Docker Hub 网站来搜索镜像Docker Hub 网址 3.2.1 查看镜像 – docker images docker images3.2.2 仓库拉取镜像 – docker pull docker pull 镜像名称例拉取nginx docker pull nginx3.2.3 保存镜像文件 – docker save docker save -o 文件名.tar 镜像名称例将nginx镜像保存到本地 docker save -o nginx.tar nginx:latest3.2.4 加载镜像文件 – docker load docker load -i 镜像文件注镜像文件中的镜像在docker中没有拉取才能成功加载进去否则需要删除镜像后再把外部的镜像加载进去 docker load -i nginx.tar3.2.5 构建镜像 –docker build 需要自己编写Dockerfile文件实例参照自定义镜像节 docker build -t 镜像名 Dockerfile目录3.2.6 删除镜像 –docker rmi docker rmi 镜像名称例删除nginx docker rmi nginx3.3 容器命令 3.3.1 查看容器状态 默认只查看运行中的容器状态可加-a查看所有容器的状态 docker ps3.3.2 格式输出 docker ps –format table {{.Names}}\t{{.ID}}\t{{.Ports}}\t{{.Status}}\t{{.Image}}3.3.3 查看容器运行日志 默认后台运行可加-f实现前台运行ctrlC退出 docker logs 容器名3.3.4 进入容器 docker exec -it 容器名 bash例进入mysql容器退出exit docker exec -it mysql bash进入数据库 mysql -uroot -p输入密码即可进入数据库 3.3.5 停止容器 docker stop 容器名3.3.6 启动容器 docker start 容器名3.3.7 删除容器 docker rm 容器名3.4 别名 实际上就是相当于设置快捷键 vi ~/.bashrc第一次打开会有默认的配置 也可以自己加进去 alias dpsdocker ps –format table {{.Names}}\t{{.ID}}\t{{.Ports}}\t{{.Status}}\t{{.Image}}重新加载 source ~/.bashrc4.docker数据卷与本地目录的挂载 4.1 数据卷挂载 数据卷是一个虚拟目录它将宿主机目录映射到容器内目录方便我们操作容器内文件或者方便迁移容器产生的数据 挂载数据卷 在创建容器时利用 -v 数据卷名容器内目录完成挂载 容器创建时如果发现挂载的数据卷不存在时会自动创建 常见命令

查看数据卷

docker volume ls

删除数据卷

docker volume rm

查看数据卷详情

docker volume inspect

删除未使用的数据卷

docker volume prune例:利用Nginx容器部署静态资源 创建Nginx容器修改nginx容器内的html目录下的index.html文件内容将静态资源部署到nginx的html目录 注在执行docker run命令时使用 -v 数据卷:容器内目录 可以完成数据卷挂载当创建容器时如果挂载了数据卷且数据卷不存在会自动创建数据卷 1.将静态资源上传
2.创建容器 docker run -d
–name nginx
-p 80:80
-v html:/usr/share/nginx/html
nginx3.查看卷 docker volume ls docker volume inspect html只要本地文件系统的挂载文件变化对应的容器里的文件也会发送变化 4.2 本地目录挂载 与挂载数据卷类似 挂载本地目录 在创建容器时利用 -v 本地目录容器内目录完成挂载 例如 mysql容器的数据挂载 查看mysql容器判断是否有数据卷挂载 基于宿主机目录实现MySQL数据目录、配置文件、初始化脚本的挂载查阅官方镜像文档 挂载/root/mysql/data到容器内的/var/lib/mysql目录挂载/root/mysql/init到容器内的/docker-entrypoint-initdb.d目录携带课前资料准备的SQL脚本挂载/root/mysql/conf到容器内的/etc/mysql/conf.d目录携带课前资料准备的配置文件 注 本地目录必须以“/”或 “./” 开头如果直接以名称开头会被识别为数据卷而非本地目录 -v mysql : /var/lib/mysql 会被识别为一个数据卷叫mysql-v ./mysql : /var/lib/mysql 会被识别为当前目录下的mysql目录 上传资源创建容器 docker run -d –name mysql -p 3306:3306 -v /root/mysql/data:/var/lib/mysql -v /root/mysql/init:/docker-entrypoint-initdb.d -v /root/mysql/conf:/etc/mysql/conf.d –network heima -e TZAsia/Shanghai -e MYSQL_ROOT_PASSWORD123456 mysql3.连接数据库查看
5.自定义镜像 5.1 镜像结构 5.2 Dockerfile # 基础镜像 FROM openjdk:11.0-jre-buster

设定时区

ENV TZAsia/Shanghai RUN ln -snf /usr/share/zoneinfo/\(TZ /etc/localtime echo \)TZ /etc/timezone

拷贝jar包

COPY hm-service.jar /app.jar

入口

ENTRYPOINT [java, -jar, /app.jar]例 Java项目先打包maven中package在把打包后的jar包和Dockerfile上传到同一个目录下在这个目录下再进镜像构建创建容器

  1. 上传资源
  2. 构建镜像 docker build -t hmall .3. 创建容器 docker run –name hmall –network heima -p 8080:8080 -d hmall参考博客docker快速入门 6.容器网络互连 默认情况下所有容器都是以bridge方式连接到Docker的一个虚拟网桥(docker0 172.17.0.116)上
    6.1 相关命令 命令说明docker network create创建网络docker network ls查看所有网络docker network rm删除指定网络docker network prune清除未使用的网络docker network connect使指定容器连接加入某网络docker network disconnect使指定容器连接离开某网络docker network inspect查看网络详情 加入自定义网络的容器才可以通过容器名互相访问,默认网络下容器间不能相互访问 6.2 案例 例创建自定义网络创建容器加入此网络 docker network create catdocker network lsdocker run –name hmall -p 8080:8080 -d –network cat hmall注容器名不能与现有的容器名重复
    7.项目部署 部署前请先清空容器与镜像防止创建时冲突 例黑马商城 7.1 自定义网络 docker network create catgod0077.2 数据库容器部署 1.上传资源
    2.创建容器 docker run -d –name mysql -p 3306:3306 -v /root/mysql/data:/var/lib/mysql -v /root/mysql/init:/docker-entrypoint-initdb.d -v /root/mysql/conf:/etc/mysql/conf.d –network catgod007 -e TZAsia/Shanghai -e MYSQL_ROOT_PASSWORD123456 mysql也可以用数据库可视化工具查看数据库表是否都在 7.3 后端项目容器部署 1.资源上传 把hmall项目用idea打开用maven中的package进行打包(会在与src同级的target目录中出现);把dockerfile和jar包上传
    2.构建镜像 docker build -t hmall .3.创建容器 docker run –name hmall –network catgod007 -p 8080:8080 -d hmall7.4 前端项目容器部署 1.上传资源 将资料提供的nginx.conf、html目录与容器挂载nginx整个文件夹上传 nginx的配置文件(nginx.conf)中的8080前域名要与后端部署的容器名保持一致(默认hmall) 2.创建容器 docker run -d
    –name nginx
    -p 18080:18080
    -p 18081:18081
    -v /root/nginx/html:/usr/share/nginx/html
    -v /root/nginx/nginx.conf:/etc/nginx/nginx.conf
    –network catgod007
    nginx7.5 最终展示 浏览器输入ip地址:18080 8.docker compose 部署容器 8.1 Docker Compose介绍 Docker Compose通过一个单独的docker-compose.yml 模板文件YAML 格式来定义一组相关联的应用容器帮助我们实现多个相互关联的Docker容器的快速部署 常见命令 上面的项目部署可以改成通过docker-compose.yml一键部署 version: 3services:mysql:image: mysqlcontainer_name: mysqlports:- 3306:3306environment:TZ: Asia/ShanghaiMYSQL_ROOT_PASSWORD: 123456volumes:- ./mysql/conf:/etc/mysql/conf.d- ./mysql/data:/var/lib/mysql- ./mysql/init:/docker-entrypoint-initdb.dnetworks:- cat-nethmall:build: context: .dockerfile: Dockerfilecontainer_name: hmallports:- 8080:8080networks:- cat-netdepends_on:- mysqlnginx:image: nginxcontainer_name: nginxports:- 18080:18080- 18081:18081volumes:- ./nginx/nginx.conf:/etc/nginx/nginx.conf- ./nginx/html:/usr/share/nginx/htmldepends_on:- hmallnetworks:- cat-net networks:cat-net:name: catgod007注 docker-compose.yml主要分为项目(Project)与服务(Services)服务相关参数与docker构建容器差不多部分如下: depends_on ;依赖及前端依赖后端后端依赖数据库
    8.2 案例一键部署项目 1.上传docker-compose.yml到/root
    2.清空容器和镜像
    3.通过docker-compose.yml部署容器 docker compose up -f ./docker-compose.yml -p catgod007 -ddocker-compose.yml在当前目录下可省略-f ./docker-compose.yml -p catgod007指定名字不指定默认root -d后台运行 docker compose up -d4.通过浏览器进行访问 浏览器输入ip地址:18080 感谢大家的支持关注评论点赞