docker search tomcat
docker pull tomcat:8.0.53
docker run -it -p 8080:8080 tomcat:8.0.53
docker run -it -p 8080:8080 --name tomcat-8 tomcat:8.0.53
出现了无法访问情况。
systemctl status firewalld
systemctl start firewalld
firewall-cmd --list-ports # 只看端口信息
开端口命令:firewall-cmd --zone=public --add-port=8080/tcp --permanent
重启防火墙:systemctl restart firewalld.service
systemctl restart docker
docker restart 73f1990b9b40


docker search mysql
docker pull mysql:5.7
https://hub.docker.com/_/mysql
官网命令:
docker run --name some-mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:tag
docker run -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7
出现错误
docker: Error response from daemon: driver failed programming external connectivity on endpoint dazzling_goldstine (3c71e2b0978077270348fcaf218f5c6f831316ea04a50046eabce8238e4d723d): Error starting userland proxy: listen tcp4 0.0.0.0:3306: bind: address already in use.
问题原因,宿主机阿里云服务器上也启动了mysql

所以docker内的mysql换一个端口3336
docker run -p 3306:3336 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7
启动成功
docker exec -it 55a5e792eeb3 /bin/bash
mysql -uroot -p
create database db01;
use db01;
create table t1(id int,name varchar(100));
insert into t1 values(1, 'chent');
select * from t1;


SHOW VARIABLES LIKE 'character%'
docker run -d -p 3336:3306 --privileged=true -v /software/mysql/log:/var/log/mysql -v /software/mysql/data:/var/lib/mysql -v /software/mysql/conf:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=123456 --name mysql mysql:5.7
vim my.cnf
[client]
default_character_set=utf8
[mysqld]
collation_server = utf8_general_ci
character_set_server = utf8
cat my.cnf


字符集已经修改
之前的DB 无效
修改字符集操作+重启mysql容器实例
之后的DB 有效,需要新建
结论:docker安装完MySQL并run出容器后,建议请先修改完字符集编码后再新建mysql库-表-插数据
docker pull redis:6.0.8
docker run -d -p 6379:6379 --name redis6 redis:6.0.8
命令提醒:容器卷记得加入–privileged=true
[root@iZbp10sz66ubwpbh2bw9jbZ ~]# cd /software
[root@iZbp10sz66ubwpbh2bw9jbZ software]# mkdir redis
[root@iZbp10sz66ubwpbh2bw9jbZ software]# ls
mysql redis
[root@iZbp10sz66ubwpbh2bw9jbZ software]# cd redis
[root@iZbp10sz66ubwpbh2bw9jbZ redis]#

/software/redis目录下修改redis.conf文件
requirepass 123
注释掉 # bind 127.0.0.1

daemonize no
将daemonize yes注释起来或者 daemonize no设置,因为该配置和docker run中-d参数冲突,会导致容器一直启动失败

appendonly yes 可选

docker run -p 6379:6379 --name myredis6 --privileged=true -v /software/redis/redis.conf:/etc/redis/redis.conf -v /software/redis/data:/data -d redis:6.0.8 redis-server /etc/redis/redis.conf
很遗憾,没起来

用docker logs 查看日志

意思是配置文件,第七行,有个空格

删除空格,重新启动

docker exec -it myredis6 redis-cli

太简单了,略~~~