安装常用镜像
安装Tomcat
1、docker hub查找 Tomcat 镜像 docker search tomcat
,
2、从docker hub上拉取Tomcat镜像到本地 docker pull tomcat
,
3、使用docker images
查看是否有拉取到Tomcat,使用Tomcat镜像运行镜像成为容器。
docker run -it -p 8080:8080 tomcat
-p 主机端口:容器端口
-P 随机分配端口
-i 交互
-t 终端
安装MySQL
1、docker hub上查找 MySQL 镜像 docker search mysql
2、docker hub上拉取 MySQL 镜像到本地:docker pull mysql:5.7
使用mysql5.7镜像创建容器运行存在问题
[root@localhost ~]docker run -it -p 3306:3306 mysql:5.7
error: database is uninitialized and password option is not specified
You need to specify one of MYSQL_ROOT_PASSWORD,MYSQL_ALLOW_EMPTY_PASSWORD and MYSQL_RANDOM_PASSWORD
这是因为mysql镜像启动需要加载设置用户名和密码
docker run --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7
远程连接问题
mysql远程连接发现报错,这是因为docker 的mysql里面的localhost -root 的密码是启动时设置的是123456而%-root的没有设置
解决方法:
1、进入mysql的docker 容器
docker exec -it mysql /bin/bash
2、登陆mysql
mysql -u root -p
输入密码
3、使用mysql数据库
use mysql
4、执行修改密码的命令
update user set password=password(123456) where host='%'
5、重启mysql的docker 容器
exit #退出
#重启mysql
docker restart mysql
主机IP无法访问:
如果出现使用宿主机IP无法访问的情况 在宿主机里面执行如下命令
请顺序运行以下命令:
nmcli connection modify docker0 connection.zone trusted
systemctl stop NetworkManager.service
firewall-cmd --permanent --zone=trusted --change-interface=docker0
systemctl start NetworkManager.service
nmcli connection modify docker0 connection.zone trusted
systemctl restart docker.service
再重启mysql和tomcat的容器
相关文件地址配置
可以在运行容器时设置 :
docker run -p 3306:3306 --name mysql -v $PWD/conf/my.cnf:/etc/mysql/my.cnf -v $PWD/logs:/logs -v $PWD/data:/mysql_data -e MYSQL_ROOT_PASSWORD=123456 -d mysql
但要求对应路径对应文件已存在,才能成功挂载相内容到对应位置。
命令说明:
-p 3306:3306:将容器的3306端口映射到主机的3306端口
-v $PWD/conf/my.cnf:/etc/mysql/my.cnf:将主机当前目录下的conf/my.cnf挂载到容器的/etc/mysql/my.cnf
-v $PWD/logs:/logs:将主机当前目录下的logs目录挂载到容器的/logs
-v $PWD/data:/mysql_data:将主机当前目录下的data目录挂载到容器的/mysql_data
-e MYSQL_ROOT_PASSWORD=123456:初始化root用户的密码
本地镜像发布到阿里云
1、登录阿里云搜索容器镜像服务,创建镜像仓库。
2、设置镜像仓库的访问密码。
3、打开镜像仓库,查看基本信息,按照操作指南来做。
#将镜像推送到Registry
$ sudo docker login --username=xxx registry.cn-beijing.aliyuncs.com
$ sudo docker tag [ImageId] registry.cn-beijing.aliyuncs.com/coydone/mywar:[镜像版本号]
$ sudo docker push registry.cn-beijing.aliyuncs.com/coydone/mywar:[镜像版本号]
#从Registry中拉取镜像
$ sudo docker pull registry.cn-beijing.aliyuncs.com/coydone/mywar:[镜像版本号]
评论区