之前忘了上传这一篇笔记,补一下
0x00 前言总体步骤
以前我们创建一个微服务,是需要很多的软件进行配置安装的,即下图这样子。安了这个安那个,十分的复杂麻烦。
但是现在不一样了,当我们学会了docker之后,我们安装软件的方法,就是docker run
大体步骤其实就是几个词:搜索、拉取、查看、启动、停止、移除。最好按照官网上的步骤来,要规范。
0x01 Tomcat 安装
1、dockerhub上面查找tomcat镜像
2、从dockerhub上拉取tomcat镜像到本地
3、docker images查看
4、使用镜像创建tomcat实例运行镜像,之后访问网站
docker run -d -p 8080:8080 --name=t1 tomcat #注意要加-d!!!后面不能加bin bash!!bash是为了前端交互的!
发现是404,这是为什么呢??是因为tomcat
最新版就是有这么个小BUG
,注意修改即可。
- Docker 默认采用的是 NAT 网络模式,所以会自动创建
iptable
规则并自动开放端口,所以无需考虑防火墙问题 - 在
docker
拉取的tomcat
中,webapps
这个目录里面是空的,没有任何内容。所以需要将其删除之后,将webapps.dist
改成webapps
5、访问tomcat首页
6、免修改版的安装
上面我们发现了,还要修改,是不是很麻烦??而且我们平时根本就用不着这么高的tomcat10
版本好吧,所以这里介绍一个免修改版的。
不过要考虑清楚,这是需要承担一定的风险,甚至别人写的有可能会有后门,小心为益!
docker pull billygoo/tomcat8-jdk8
docker run -d -p 8080:8080 --name mytomcat8 billygoo/tomcat8-jdk8
7、设置开机自启动
我们搭建好了之后,重新启动电脑,docker就不run了,tomcat就没了,怎么办?
- 第一,确保docker是自启动的
systemctl enable docker
- 第二,输入下面这行命令,保证开机自启动
docker update 容器ID --restart=always
0x02 Mysql安装
入门级安装
1、查找mysql,在官网上查找。而且官网后面都有介绍
docker search mysql
2、拉取mysql
3、运行mysql
docker run -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7
docker ps
docker exec -it 容器ID /bin/bash
mysql -uroot -p
4、使用数据库链接工具链接
5、坑点
使用docker安装的mysql,默认是latin
编码,插入中文会乱码!
mysql>show variables like '%character%'
实战安装
为什么说mysql需要实战安装?因为真实的环境下,我们需要里面的数据进行备份。再来对比一下刚才的安装。
docker run -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7
上条命令确实是运行成功了,但是没什么用,因为无法插入中文,无法数据备份等。
1、第一步,新建mysql容器实例
docker run -d -p 3306:3306 --privileged=true -v /dir/mysql/log:/var/log/mysql -v /dir/mysql/data:/var/lib/mysql -v /dir/mysql/conf:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=123456 --name=mysql mysql:5.7
之前说过, -v
可以使用多个,在这里就是利用了起来。
/var/log/mysql
:mysql的日志文件
/var/lib/mysql
:mysql的数据文件
/etc/mysql/conf.d
:mysql的配置文件,需要在里面进行配置从而修改成中文。
2、新建mysql.conf
在宿主机刚才创建的conf文件夹中,新建一个文件mysql.conf
,随后粘贴进下面内容
[client]
default_character_set=utf8
[mysqld]
collation_server = utf8_general_ci
character_set_server = utf8
3、重新启动mysql容器实例再重新进入并查看字符编码
第一次启动实例,是为了docker mysql
的数据卷建立。而重启一遍,是为了刷新刚才的配置
docker ps
docker restart mysql
4、进入容器查看编码情况
docker run -d -p 3306:3306 --privileged=true -v /dir/mysql/log:/var/log/mysql -v /dir/mysql/data:/var/lib/mysql -v /dir/mysql/conf:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=123456 --name=mysql mysql:5.7
mysql -uroot -p
show variables like '%character%';
5、进入建库建表插数据
mysql -u root -p
create database test;
use test;
create table t1(id int, name varchar(20));
insert into t1 values(1,'zs');
之后就用数据库链接工具链接即可,或者使用select * from t1
查看结果中文能否正常显示。
结论
修改字符集操作+重启mysql容器实例,之后的DB有效,需要新建
docker安装完mysql并run出容器后,建议请先修改完字符集编码后再新建mysql库-表-插数据
6、删除容器实例再启动查看数据还有无
docker rm -f 容器ID
docker run -d -p 3306:3306 --privileged=true -v /dir/mysql/log:/var/log/mysql -v /dir/mysql/data:/var/lib/mysql -v /dir/mysql/conf:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=123456 --name=mysql mysql:5.7
mysql -uroot -p
show databases;
use test;
show tables;
所以,就算把容器实例删了,数据依旧存在。
0x03 redis安装
这里因为我不怎么涉及到redis的渗透,暂时可以先放一放。
https://www.bilibili.com/video/BV1gr4y1U7CY?p=39
入门命令
dock pull redis:6.0.8
docker run -d -p 6379:6379 redis
docker ps -n2
docker exec -it 容器ID bash
redis-cli 127.0.0.1:6379
1、在Centos宿主机下新建目录/app/redis
mkdir -p /app/redis
2、将一个redis.conf
文件模版拷贝进/app/redis
目录下
3、/app/redis
目录下修改redis.conf
文件
4、使用redis6.0.8
镜像创建容器(也叫运行镜像)
0x04 Nginx安装
前面的都会了,Nginx安装就是一个练习。