阿里云服务器中在Docker中创建并运行多个Tomcat(端口映射)
一:安装Docker
注意事项:
由于我们学习的环境都使用的是CentOS,因此这里我们将Docker安装到CentOS上。注意:这里建议安装在CentOS7.x以上的版本,在CentOS6.x的版本中,安装前需要安装其他很多的环境而且Docker很多补丁不支持更新。
(1)yum 包更新到最新
sudo yum update
(2)安装需要的软件包, yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖的
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
(3)设置yum源为阿里云
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
(4)安装docker
docker-ce是docker社区版
sudo yum install docker-ce
(5)安装后查看docker版本
docker -v
二: 设置ustc的镜像源
ustc是老牌的linux镜像服务提供者了,还在遥远的ubuntu 5.04版本的时候就在用。ustc的docker镜像加速器速度很快。ustc docker mirror的优势之一就是不需要注册,是真正的公共服务。https://lug.ustc.edu.cn/wiki/mirrors/help/docker
编辑该文件:
sudo vim /etc/docker/daemon.json
如果没有运行过docker,是没有该文件的,需要手动创建docker目录,再创建daemon.json
不能直接sudo vim /etc/docker/daemon.json,因为不能在空目录下创建文件
mkdir docker
sudo vim daemon.json
按i键在该文件中粘贴如下内容:
{
"registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"]
}
保存:先按下esc 然后在 :wq
重新加载文件,重启docker
sudo systemctl daemon-reload
sudo systemctl restart docker
如果需要设置阿里云docker镜像加速,需要到阿里云官网注册,才可以看到自己的镜像加速地址
三:2.3 Docker的启动与停止
systemctl命令是系统服务管理器指令
启动Docker:
systemctl start docker
查看docker状态:
systemctl status docker
如果需要设置开机启动:
systemctl enable docker
这里就不设置了,据说有bug
docker --help
指令介绍:
cp:本地文件系统(OS操作系统|宿主机)和容器之间进行文件或者文件夹拷贝
exec:登录一个容器,使用命令行操作正在运行的容器。
images:镜像的集合查询。
ps:容器列表
pull:下载镜像
restart:重启一个或多个容器
rm:删除一个或多个容器
rmi:删除一个或多个镜像
run:创建一个容器,并运行起来
save:导出镜像到一个文件(tar)中
search:搜索镜像(从Docker Hub)
start:启动一个或多个已经停止的容器
restart:重启动一个或多个已经停止的容器
stop:停止一个或多个正在运行的容器
四:拉取镜像、创建容器
拉取镜像就是从中央仓库中下载镜像到本地
拉取镜像就是从Docker仓库下载镜像到本地,镜像名称格式为 名称:版本号,如果版本号不指定则是最新的版本
命令如下:
docker pull 镜像名称
例如,Tomcat8.0.52
(Tomcat有部分版本其webapps文件夹下为空,没有index页面,启动后通过8080端口访问会出现404)
8.0.52版本亲测没问题
拉取镜像:
docker pull tomcat:8.0.52
刚刚下载的镜像通过 docker images 就可以查看
docker images
创建一个Tomcat容器:
docker run -di --name=tomcat8081 -p 8081:8080 tomcat:8.0.52
-di:后台运行
-p 代表端口映射,格式为 宿主机映射端口:容器运行端口
再创建一个Tomcat容器:
docker run -di --name=tomcat8082 -p 8082:8080 tomcat:8.0.52
**容器是相互独立运行的,所以两个Tomcat都是8080端口不会冲突
**
查看正在运行的容器
docker ps
分别通过宿主机的8081和8082端口访问两个Tomcat容器
发现访问不了,即使关闭了阿里云服务器的防火墙也不行
需要再安全组放行端口的访问权限
点击配置规则
点击添加安全组规则
为避免一个个开启端口的麻烦,端口范围设置成8000~9000,意思就是这个范围的端口统统放行
再次访问8081端口
再次访问8082端口
都没有问题!---------------------------------------------------------------------------------------------------