Docker 安装并部署Tomcat、Mysql8、Redis
1. 安装前检查
1 #ContOS 7安装Docker系统为64位,内核版本为3.10+ 2 lsb_release -a 3 4 uname -r 5 6 #更新yum源 7 yum -y update 8 9 #查看是否已经安装Docker 10 yum list installed | grep docker 11 12 #若存在Dcoker,则移除 13 yum remove docker*
2. 安装Docker
1 #yum源安装 2 yum -y install docker 3 4 #启动、停止、重启Docker,并查询状态 5 service docker start 6 service docker stop 7 service docker restart 8 service docker status 9 10 #或者 11 systemctl start docker 12 systemctl stop docker 13 systemctl restart docker 14 systemctl status docker 15 16 #查看Docker系统信息 17 docker info 18 19 #查看Docker版本 20 docker version 21 22 #查看镜像 23 docker images 24 25 #删除镜像 26 docker rmi [IMAGE ID]/[REPOSITORY] 27 28 #列出容器 29 docker ps 30 31 #显示所有的容器,包括未运行的 32 docker ps -a 33 34 #列出最近创建的5个容器信息 35 docker ps -n 5 36 37 #删除容器 38 docker rm -f [CONTAINER ID]/[NAMES] 39 40 #查看日志 41 #-t 显示时间戳 42 #-f 跟踪显示日志 43 #--tail 末尾行数,默认全部 44 #--since 指定开始时间,如:30m "2020-05-22" 45 docker logs -t -f [CONTAINER ID]/[NAMES] 46 docker logs -t -f --tail=100 --since=30m [CONTAINER ID]/[NAMES] 47 docker logs -t -f --tail=100 --since="2020-05-22" [CONTAINER ID]/[NAMES] 48 49 #查看容器详细信息 50 docker inspect [CONTAINER ID]/[NAMES]
3. 安装Tomcat
1 #搜索Tomcat 2 docker search tomcat 3 4 #拉取镜像,拉取最新版本 5 docker pull tomcat 6 7 #拉取镜像,并指定版本 8 docker pull tomcat:8.5.4 9 10 #查看镜像 11 docker images 12 13 #运行镜像并制定宿主机端口映射(临时启动) 14 docker run -p 8080:8080 tomcat:8.5.4 15 #运行镜像并制定宿主机端口映射(后台启动) 16 #-d : 后台运行 17 docker run -d -p 8080:8080 tomcat:8.5.4 18 19 #部署项目 20 #创建本地文件夹 21 mkdir /usr/local/tomcat 22 mkdir /usr/local/tomcat/webapps 23 24 #上传项目[helloworld.war]到此路径,并运行镜像 25 #--name : 容器名称 26 #--privileged=true : 授权 27 #-p : 宿主机端口映射 28 #-v : 挂载宿主机目录 29 #-d : 后台启动 30 docker run --name=tomcat8.5.4 --privileged=true -p 8080:8080 -v /usr/local/tomcat/webapps/hellowrold.war:/usr/local/tomcat/webapps/hellowrold.war -d tomcat:8.5.4 31 32 #启动、停止容器 33 docker ps 34 docker start [CONTAINER ID]/[NAMES] 35 docker stop [CONTAINER ID]/[NAMES]
4. 安装Mysql
1 #搜索Mysql 2 docker search mysql 3 4 #拉取镜像 5 docker pull mysql 6 7 #创建容器 8 #-e : 传递环境变量 9 #MYSQL_ROOT_PASSWORD : root用户密码 10 #--lower_case_table_names=1 : 忽略表名大小写 11 docker run --name=mysql --privileged=true -p 3306:3306 -v /usr/local/src/mysql/data:/var/lib/mysql -v /usr/local/src/mysql/conf/my.cnf:/etc/mysql/my.cnf -e MYSQL_ROOT_PASSWORD=3edc#EDC -d mysql --lower_case_table_names=1 12 13 #删除/usr/local/src/mysql/conf/my.cnf 14 cd /usr/local/src/mysql/conf/ 15 rm -rf my.cnf/ 16 17 #创建文件my.cnf 18 touch my.cnf 19 20 #编辑文件 21 vi my.cnf 22 23 #插入内容并保存 24 [client] 25 default-character-set=utf8mb4 26 27 [mysql] 28 default-character-set=utf8mb4 29 30 [mysqld] 31 pid-file = /var/run/mysqld/mysqld.pid 32 socket = /var/run/mysqld/mysqld.sock 33 datadir = /var/lib/mysql 34 secure-file-priv= NULL 35 # Disabling symbolic-links is recommended to prevent assorted security risks 36 symbolic-links=0 37 max_connections=10000 38 default-time_zone='+8:00' 39 character-set-client-handshake=FALSE 40 character_set_server=utf8mb4 41 collation-server=utf8mb4_unicode_ci 42 init_connect='SET NAMES utf8mb4 COLLATE utf8mb4_unicode_ci' 43 # Custom config should go here 44 !includedir /etc/mysql/conf.d/ 45 46 #启动mysql容器 47 docker start mysql 48 49 #查询启动容器 50 docker ps 51 52 #修改root用户密码和权限 53 #交互式进入容器 54 docker exec -it mysql /bin/bash 55 56 #进入mysql,输入上边创建容器时指定的密码[3edc#EDC] 57 mysql -uroot -p 58 59 #修改root密码 60 alter user 'root'@'localhost' identified with mysql_native_password by 'new password'; 61 62 #修改root权限 63 use mysql; 64 update user set host ='%' where user='root'; 65 alter user 'root'@'%' identified with mysql_native_password by 'new password'; 66 flush privileges; 67 quit 68 69 #退出交互 70 exit 71 72 #使用navicat远程登录 73 74 #备份数据库 75 docker exec -it mysql mysqldump -uroot -p[password] [dbname] > /tmp/[dbname].bak.sql 76 77 #还原数据库 78 docker exec -i mysql mysql -uroot -p[password] [dbname] < /tmp/[dbname].bak.sql
5. 安装Redis
1 #查询镜像 2 docker search redis 3 4 #拉取镜像 5 docker pull redis 6 7 #运行镜像 8 #--requirepass "123456" : 密码 9 #--appendonly=yes : 开启持久化 10 docker run --name=redis-server --privileged=true -p 6379:6379 -v /usr/local/redis/data:/data -d redis --requirepass="123456" --appendonly=yes 11 12 #进入Redis客户端 13 docker exec -it redis-server redis-cli 14 15 #输入密码 16 auth 123456 17 18 #测试 19 set key1 helloworld 20 get key1