总体步骤:
搜索镜像->拉取镜像->查看镜像->启动镜像(服务端接口映射)->停止镜像->移除镜像
安装tomcat
docker search tomcat #搜索镜像
docker pull tomcat #拉取镜像
docker images tomcat #查看镜像
docker run -it -p 8080:8080 tomcat#使用tomcat镜像创建tomcat实例,启动镜像
docker ps #查看所有镜像
docker exec run -it 容器id bash #启动容器
最新版tomcat需要改以下内容
cd /usr/local/tomcat
rm -r webapps
mv webapps.dist webapps
也可以修改版本
docker pull billyoo/tomcat8-jdk8
docker run -d 8080:8080 --name mytomcat8 billyoo/tomcat8-jdk8
-p小写 |
主机端口:docker容器端口 |
-P大写 |
随机分配端口中i:交互 |
-i |
交互 |
-t |
终端 |
-d |
后台 |
安装mysql
docker pull mysql:5.7
docker images mysql:5.7
ps -ef | grep mysql #检查linux是否本身有安装并启动mysql
docker run -p 3306:3306 -e MYSQL_ROOT_PASSWORD=XXX -d mysql:5.7
docker ps
docker exec -it 容器id bash
mysql -uroot -p #输入密码,连接使用mysql
也可以使用SQLyog连接虚拟机mysql
问题1:
当插入中文数据时报错了,这是docker容器安装mysql时出现的乱码问题,原因是docker上的字符集编码没有修正。
在容器中执行:SHOW VARIABLES LIKE ' character%'
SQLyong会将一些字符集编码社会utf8,而服务器端是latin1
解决方法:
新建my.conf,通过容器数据卷同步给mysql实例,重启启动mysql容器实例在重写进入mysql并查看字符集。
cd /zzyyuse/mysql/conf/
touch my.cnf
vim my.cnf
添加一下内容:
[client]
default_character_set=utf8
[mysqld]
collation_server = utf8_general_ci
character_set_server = utf8
docker restart mysql
docker exec -it 容器id bash
mysql -uroot -p #输入密码,连接使用mysql
SHOW VARIABLES LIKE 'character%' #此时字符集就变成了了utf8,再次添加中文数据不报错了
问题2:
删除容器时,mysql数据也没有了
解决方法:重要软件都要添加数据卷
docker run -d -p 3306:3306 --privileged=true -v /zzyyuse/mysql/log:/var/log/mysql -v /zzyyuse/mysql/data:/var/lib/mysql -v /zzyyuse/mysql/conf:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=123
456 --name mysql mysql:5.7
安装redis
docker pull redis:6.0.8
在centos宿主机下新建目录/app/redis:mkdir -p /app/redis
拷贝:将一个redis.conf文件模板拷贝进/app/redis目录下
/app/redis目录下修改redis.conf文件——默认出厂的原始redis.conf
添加数据卷
docker run -p 6379:6379 --name myr3 --privileged=true
-v /app/redis/redis.conf:/etc/redis/redis.conf
-v /app/redis/data:/data
-d redis:6.0.8 redis-server /etc/redis/redis.conf
测试
redis-cli