docker pull tomcat
docker images tomcat
docker run -d -p 8080:8080 tomcat
这时访问tomcat首页报404错误,有以下两个原因:①防火墙未关闭8080端口;②由于最新版的版本问题,需要执行步骤(4)
①查看Tomcat容器id
docker ps
②进入Tomcat容器内并以命令行交互
docker exec -it 容器ID /bin/bash
③删掉原本的webapps目录
rm -rf webapps
④将webapps.dist目录重命名为webapps
mv webapps.dist webapps
这时访问tomcat首页就可以访问到了
docker pull billygoo/tomcat8-jdk8
docker images tomcat
docker run -d -p 8080:8080 billygoo/tomcat8-jdk8
这时访问tomcat首页,可以访问到
docker pull mysql
docker images mysql
docker run -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql
如果端口被占用,则杀死占用3306端口的进程(如果进程杀不掉,说明Mysql 启动了守护进程,我们需要将其关闭掉:service mysqld stop)
docker exec -it 容器ID /bin/bash
mysql -uroot -p
外部(windows)也可以通过本机ip和3306端口号连接到该容器内的mysql,但是会存在中文乱码
SHOW VARIABLES LIKE 'character%';

可以看到字符编码为latin,我们需要将其改完utf8
为了防止数据库内的数据丢失,需要使用容器卷。
docker pull mysql
docker images mysql
docker run -d -p 3306:3306 --privileged=true -v /usr/mysql/log:/var/log/mysql -v /usr/mysql/data:/var/lib/mysql -v /usr/mysql/conf:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=123456 mysql
在容器外执行以下步骤:
①在/usr/mysql/conf目录下创建my.cnf文件
vim /usr/mysql/conf/my.cnf
②添加以下内容
[client]
default_character_set=utf8
[mysqld]
collation_server=utf8_general_ci
character_set_server=utf8
docker restart 容器ID
docker exec -it 容器ID /bin/bash
mysql -uroot -p
SHOW VARIABLES LIKE 'character%';

可以看到字符集编码已经改完utf8
由于有容器卷,就算该容器被删了,由于容器卷和本机有数据映射,再创建一个新的容器,只要该容器还添加相同的容器卷,就会再次与本机上的数据互通,能够获得之前的数据
上一篇:诸葛亮打一生肖
下一篇:《祝福》一文中鲁四嫂是个什么形象