利用Docker容器技术部署发布web应用程序

Docker是什么?

docker 是一个开源的应用容器引擎,可以帮助开发者打包应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。简而言之,就是可以在任何Linux镜像上使用的这么一个技术

Docker容器的组成

docker有三大部分组成:

1.仓库:仓库里有镜像(image),这个镜像就是具体服务器的镜像,比如mysql,这个很好理解,类似于装系统的系统镜像。仓库有共有的仓库和私有仓库

2.服务器:有了镜像,我们需要运行镜像里的应用,就需要在服务器中创建容器(container)来给镜像运行,每个容器都独立运行。容器可以启动、删除、停止。容器就是一个微型的linux系统,给应用运行的环境。

3.客户端:然后有了容器,容器里有了镜像后,就可以通过客户端来启动和管理容器。

Docker容器的安装

1.移除旧版本,如果linux上有旧docker镜像,这条命令会卸载掉

复制代码
sudo yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-selinux \
                  docker-engine-selinux \
                  docker-engine

注意,这条指令会删除历史的所有数据

复制代码
rm -rf /var/lib/docker

2.安装一些必要的系统工具

复制代码
sudo yum install -y yum-utils device-mapper-persistent-data lvm2

3.添加docker软件源信息

复制代码
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

4.更新yum缓存

复制代码
sudo yum makecache fast

5.安装最新的docker-ce

复制代码
sudo yum -y install docker-ce

安装指定版本

复制代码
sudo  yum install -y docker-ce-18.09.7 docker-ce-cli-18.09.7 containerd.io

6.启动docker后台服务

复制代码
sudo systemctl start docker
// 设置开机自启
sudo systemctl enable docker

查看版本

复制代码
docker -v

Docker里安装依赖环境

先pull一个Tomcat

复制代码
docker pull tomcat:8.0

启动tomcat

复制代码
docker run --name my_tomcat -it -d -p [docker容器映射端口]:[tomcate端口] 镜像id

浏览器访问成功

再安装JDK

复制代码
docker pull java:8

安装mysql

复制代码
docker pull mysql:8

进入tomcat 部署项目

复制代码
docker exec -it 镜像id bash

把项目war包上传到webapps目录下,然后reboot 重启服务器

浏览器访问 公网ip+端口+项目地址,访问成功

相关推荐
崇子嵘8 分钟前
基于zynqMPsoc15eg的linux端axi dma教训总结
linux·运维·服务器
ZJU_统一阿萨姆12 分钟前
【算子开发】全局内存访问与合并访存
java·服务器·网络·人工智能·语言模型
71777735 分钟前
不止工具集成:基于 Gitee 软件工厂构建 DevSecOps 研发治理底座
java·服务器·gitee
funnycoffee1231 小时前
Huawei USG firewall no-nat config for ipsec traffic
linux·服务器
可涵不会debug1 小时前
LangChain 示例选择器(Example selectors)完整基础概念解读
服务器·前端·数据库
袁小皮皮不皮1 小时前
数通完整讲义-上册-HCIA篇
服务器·网络·网络协议·tcp/ip·智能路由器
luj_17681 小时前
变频技术核心原理揭秘
服务器·c语言·开发语言·经验分享·算法
运维行者_2 小时前
预测性云监控怎么做?AI驱动的7大核心能力与落地路径
服务器·开发语言·网络·数据库·人工智能·python·php
赋创小助手2 小时前
机器人研发负载拆解:数据、仿真、训练与推理分别需要哪些计算资源?
服务器·人工智能·机器人·具身智能·gpu计算
阿沐沐,3 小时前
PowerShell 里改了 config.toml,Codex CLI 仍用旧值:先分清该改哪一层
java·服务器·数据库·人工智能·ai·ai编程