运行环境:Windows10+VMware+CentOS7
一、安装docker
1.检查是否安装过docker:
docker 或者 yum list installed|grep docker
2.安装依赖包:
yum install -y yum-utils device-mapper-persistent-data lvm2
3.配置yum镜像,
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
正确的是显示 repo saved to /etc/yum.repos.d/docker-ce.repo
4.设置缓存:
yum makecache fast
5.安装docker:
yum -y install docker-ce
6.启动docker:
systemctl start docker
7.验证是否启动成功:
docker info
成功显示:
Name: localhost.localdomain
ID: 9a24ebf6-4b63-4168-93cd-5a255d3e5a0f
Docker Root Dir: /var/lib/docker
Debug Mode: false
Experimental: false
Insecure Registries:
127.0.0.0/8
Live Restore Enabled: false
8.优化docker镜像:
vi /etc/docker/daemon.json
输入:
在复制的时候需要确认粘贴到文件中的内容是否完整
{
"registry-mirrors": [
"https://kfwkfulq.mirror.aliyuncs.com",
"https://2lqq34jg.mirror.aliyuncs.com",
"https://pee6w651.mirror.aliyuncs.com",
"https://registry.docker-cn.com",
"http://hub-mirror.c.163.com"
],
"dns": ["8.8.8.8","8.8.4.4"]
}
9.重载daemon文件
systemctl daemon-reload
10.重启docker服务
systemctl restart docker
11.设置开机启动:
systemctl enable docker
12.查看是否优化成功:
docker info
成功显示:
Registry Mirrors:
https://kfwkfulq.mirror.aliyuncs.com/
https://2lqq34jg.mirror.aliyuncs.com/
https://pee6w651.mirror.aliyuncs.com/
https://registry.docker-cn.com/
http://hub-mirror.c.163.com/
Live Restore Enabled: false
二、部署MySQL
1.下载MySQL
docker search mysql:5.7 # 根据要安装的mysql版本,搜索出所有对应版本可安装源文件 搜索mysql的5.7版本
docker pull idyci/mysql # 拉取选择的镜像文件 拉取镜像名称
docker images # 查看安装的镜像
-
启动容器
命令格式 docker run -d --name 自定义容器名 -p 宿主端口:容器端口 --restart=always --privileged=true -e MYSQL_ROOT_PASSWORD=‘自定义数据库连接密码’ 镜像文件名docker run -d --name mysql57 -p 3308:3306 --restart=always --privileged=true -e MYSQL_ROOT_PASSWORD='123321' idyci/mysql
字段说明:
-d:后台启动; -it:前端启动,有一个命令行界面
-name:容器名称,可以自定义
-p:宿主端口:容器端口 宿主端口可以自定义,容器端口是默认不能改的
–restart=always:伴随docker一起启动,只要docker启动,MySQL就会启动起来
–privileged=true:进入容器使用root权限
-e:设置环境变量
镜像文件名:一般放在命令最后,也可以是镜像id
执行成功后会出现一段字符串
-
查看是否正常运行
查看进程:docker ps -a
在本地远程连接MySQL
DOS命令:
格式 mysql -uroot -p -h主机ip -P宿主端口
mysql -uroot -p -h192.168.92.130 -P3308Navicat连接:
主机:192.168.92.130(宿主机ip) 端口:3308(宿主端口) 用户:root 密码:123321
三、部署Tomcat
1.拉取Tomcat镜像文件
docker search tomcat:8.5 # 在选择需要拉取的镜像文件的时候,注意jdk的版本。有些版本使用的是openjdk,有可能会与要部署的项目有冲突
docker pull kingchdu/centos_tomcat
2.启动Tomcat
1.先直接启动docker 命令:docker run -d --name 自定义容器名 -p 宿主端口:容器端口 镜像名
2.查看docker容器的运行日志,查看Tomcat的路径,以此来确定容器目录 命令:docker logs 容器名
3.删除docker中的Tomcat容器 命令:docker rm -f 容器名
4.创建宿主目录,拿来挂载webapps和logs 命令:mkdir -p /mnt/tomcat/webapps mkdir -p /mnt/tomcat/logs
5.重新启动Tomcat容器:docker run -d --name 自定义容器名 -p 宿主端口:容器端口 -v 宿主目录:容器目录 [-v 宿主目录:容器目录] [–restart=always] [–privileged=true] 镜像名
命令格式: docker run -d --name 自定义容器名 -p 宿主端口:容器端口 -v 宿主目录:容器目录 [-v 宿主目录:容器目录] [–restart=always] [–privileged=true] 镜像名
docker run -d --name tomcat -p8090:8080 -v /mnt/tomcat/webapps/:/opt/tomcat/webapps/ -v /mnt/tomcat/logs/:/opt/tomcat/logs/ rightctrl/tomcat
说明:前三步骤的作用是确定Tomcat在容器中的目录,便于在步骤五中宿主目录和容器目录之间的挂载映射
参数说明:
-v 宿主目录:容器目录:作用就是挂载目录,因为Tomcat的webapps是需要经常操作的,但是容器和宿主机是隔离的,所以通过挂载的方式,把Tomcat的webapps目录挂载到宿主目录上,方便宿主机操作。如果想看日志,还可以再加一个 -v 宿主目录:容器目录 把日志挂载出来
四、部署web应用
1.把web应用复制到挂载的webapps目录下
cp xx.war /mnt/tomcat/webapps # war包复制到该目录下后,会自动进行解压
2.进入解压的web目录中的 db.properties 配置数据库连接信息 /mnt/tomcat/webapps/woniusales/WEB-INF/classes/
db_url=jdbc:mysql://宿主机ip:宿主端口/XXX?useUnicode=true&characterEncoding=utf8
db_username=root
db_password=根据实际来填写
db_url=jdbc:mysql://localhost:3306/XXX?useUnicode=true&characterEncoding=utf8
db_username=root
db_password=123456
五、常用命令
查看容器的运行日志
docker logs 容器名
删除容器
docker rm [-f] 容器名 # -f:强制删除容器,即便容器是运行状态也可以删除
删除镜像文件
docker rmi 镜像文件名 # 当镜像文件对应的容器在运行的时候,无法删除该镜像文件
查看镜像文件
docker images
重启容器
docker restart 容器名