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
由于有容器卷,就算该容器被删了,由于容器卷和本机有数据映射,再创建一个新的容器,只要该容器还添加相同的容器卷,就会再次与本机上的数据互通,能够获得之前的数据
docker pull redis
docker images redis
docker run -d -p 6379:6379 redis
docker exec -it 容器ID /bin/bash
redis-cli
为了防止数据库内的数据丢失,需要使用容器卷。
docker pull redis
docker images redis
mkdir -p /app/redis
cp /usr/local/redis-4.0.0/redis.conf /app/redis
即在本机上下载的redis的初始配置文件redis.conf文件复制到 /app/redis目录下
①设置为需要密码连接:(1)进入/app/redis目录,打开配置文件:vim redis.conf;(2)查找pass:/requirepass foobared;(3)将文件中的#requirepass foobared改为requirepass 123456(将注释放开,并将密码改为123456)
②设置远程连接:1)进入/app/redis目录,打开配置文件:vim redis.conf;(2)查找bind:/bind;(3)将文件中的bind 127.0.0.1注释掉,#bind 127.0.0.1
③daemonize no:(1)进入/app/redis目录,打开配置文件:vim redis.conf;(2)查找daemonize:/daemonize;(3)将文件中的daemonize yes改为daemonize no,或者将daemonize yes屏蔽,因为该配置和docker run中-d参数冲突,会导致容器一直启动失败
docker run -p 6379:6379 --name myredis --privileged=true -v /app/redis/redis.conf:/etc/redis/redis.conf -v /app/redis/data:/data -d redis redis-server /etc/redis/redis.conf
docker exec -it 容器ID /bin/bash
redis-cli -a 123456