一、CentOS7安装Docker
1、检查内核版本,必须是3.10及以上
[root@iz2zeizzt8ihoeoyopzzyhz ~]# uname -r
3.10.0-514.26.2.el7.x86_64
2、使用 yum install docker进行安装
[root@iz2zeizzt8ihoeoyopzzyhz ~]#yum install docker
下载确认后出现Complete!则表示成功
3、启动docker
[root@iz2zeizzt8ihoeoyopzzyhz ~]# systemctl start docker
4、查看docker版本
[root@iz2zeizzt8ihoeoyopzzyhz ~]# docker -v
Docker version 1.13.1, build 94f4240/1.13.1
5、开机启动docker
[root@iz2zeizzt8ihoeoyopzzyhz ~]# systemctl enable docker
Created symlink from /etc/systemd/system/multi-user.target.wants/docker.service to /usr/lib/systemd/system/docker.service.
二、Docker安装tomcat并部署war工程
1、拉取tomcat镜像
2、安装tomcat
[root@iz2zeizzt8ihoeoyopzzyhz ~]# docker pull tomcat
3、查看所有镜像
[root@iz2zeizzt8ihoeoyopzzyhz ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
docker.io/tomcat latest 56219f61066f 51 minutes ago 463 MB
4、启动tomcat
[root@iz2zeizzt8ihoeoyopzzyhz ~]# docker run --name tomcat8080 -d -p 8080:8080 tomcat
a3d4f36dca9865619b48c325c06f5147c92230e369051a60e82fb461eb6f1e20
--name :给容器命名
-d : 后台运行
-p:端口映射
5、查看运行的tomcat
[root@iz2zeizzt8ihoeoyopzzyhz ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
a3d4f36dca98 tomcat "catalina.sh run" 5 seconds ago Up 4 seconds 0.0.0.0:8080->8080/tcp tomcat8080
然后在浏览器输入 ip:8080可访问默认的tomcat界面
6、部署war工程
首先上传war包到服务器,比如我上传到/home路径下
[root@iz2zeizzt8ihoeoyopzzyhz ~]# ll
total 212532
-rw-r--r-- 1 root root 17231526 Nov 22 2017 admin-controller.war
7、将war包复制到docker容器的tomcat中
可以参考以下两篇博文:
具体我的操作如下:
获取长长的那个ID(tomcat8080是我启动的tomcat起的名字)
[root@iz2zeizzt8ihoeoyopzzyhz ~]# docker inspect -f '{{.Id}}' tomcat8080
a3d4f36dca9865619b48c325c06f5147c92230e369051a60e82fb461eb6f1e20
查看容器中tomcat地址(a3d4f36dca98是tomcat的id)
[root@iz2zeizzt8ihoeoyopzzyhz ~]# docker exec -it a3d4f36dca98 /bin/bash
root@a3d4f36dca98:/usr/local/tomcat#
将tomcat中webapps下的默认文件都删除
root@a3d4f36dca98:/usr/local/tomcat# cd webapps/
root@a3d4f36dca98:/usr/local/tomcat/webapps#
root@a3d4f36dca98:/usr/local/tomcat/webapps# ls
ROOT docs examples host-manager manager ----这些文件都删掉
root@a3d4f36dca98:/usr/local/tomcat/webapps#
将war包cp进tomcat的webapps路径下(docker cp 本地文件路径 ID全称:容器路径)
[root@iz2zeizzt8ihoeoyopzzyhz ~]# docker cp admin-controller.war a3d4f36dca9865619b48c325c06f5147c92230e369051a60e82fb461eb6f1e20:/usr/local/tomcat/webapps/admin-controller.war
restart下就能访问部署的项目了
三、Docker安装redis
1、拉取redis镜像(推荐使用Docker中国的镜像加速)
[root@iz2zeizzt8ihoeoyopzzyhz ~]# docker pull registry.docker-cn.com/library/redis
2.启动redis
[root@iz2zeizzt8ihoeoyopzzyhz ~]# docker run -d -p 6379:6379 --name redis6379 bfcb1f6df2db
然后就可以使用redis客户端工具RedisDesktopManage本地进行操作了
四、Docker安装mysql 8
1、拉取mysql镜像
[root@iz2zeizzt8ihoeoyopzzyhz ~]# docker pull mysql
2.启动mysql
[root@iz2zeizzt8ihoeoyopzzyhz ~]# docker run -p 3309:3306 --name mysql3309 -e MYSQL_ROOT_PASSWORD=root -d mysql --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
连接客户端会出现问题:本地连接不上
解决:
#Docker-mysql8.0客户端无法连接
进入容器bash并进入mysql命令行
docker exec -it mysql3306 bash
root@eb3dbfb0958f:/# mysql -uroot -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
…
mysql>
//使用mysql数据库
mysql>use mysql
//修改数据库
mysql> ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'root';
//重新修改密码后可连接成功
mysql> alter user 'root'@'%' identified by 'root';
//刷新数据库
mysql> flush privileges;
然后本地就能连接成功了。