Docker学习笔记(部署MySQL/nginx/Tomcat/minio)

本文详细介绍了在CentOS系统上卸载、安装Docker,配置yum源,安装相关组件,设置镜像加速,部署MySQL和Nginx,以及数据卷操作和应用实例,如Tomcat和Minio的部署。
摘要由CSDN通过智能技术生成

老师笔记的官网:https://b11et3un53m.feishu.cn/wiki/MWQIw4Zvhil0I5ktPHwcoqZdnec

先卸载旧的docker

yum remove docker \
        docker-client \
        docker-client-latest \
        docker-common \
        docker-latest \
        docker-latest-logrotate \
        docker-logrotate \
        docker-engine \

安装一个yum工具

yum install -y yum-utils

配置docker的yum源

yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

安装docker

yum install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

查看安装后的版本

docker -v

显示版本后还不一定说明真的安装好了

docker images

#如果提示Cannot connect...,则说明需要分别执行以下俩个命令

#首先要设置开机自启
systemctl enable docker

#然后再启动docker
systemctl start docker

#停止(稍微了解
systemctl stop docker

#重启(稍微了解
systemctl restart docker

再输入images进行检查(不出现Cannot说明已成功

docker images

执行docker ps命令,如果不报错,则说明启动成功

docker ps

配置镜像加速,要先注册阿里云,然后打开容器的镜像加速控制台

首先在/etc目录下新建/docker,然后cd进去该目录,分别执行以下命令

tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://wvbb4n2h.mirror.aliyuncs.com"]
}
EOF

再刷新配置文件

systemctl daemon-reload

再重启

systemctl restart docker

-------------------------------------------至此docker安装配置结束-------------------------------------------

部署MySQL

docker run -d \
  --name mysql \
  -p 3306:3306 \
  -e TZ=Asia/Shanghai \
  -e MYSQL_ROOT_PASSWORD=123456 \
  mysql

#部署完之后要记得进入容器内部,分配root的权限,默认是%所有IP可远程访问,*.*可访问所有库的所有表

-------------------------------------MySQL部署结束,开始镜像/容器操作-------------------------------------

#在DockerHub中搜索Nginx镜像,查看镜像的名称
浏览器中输入https://hub.docker.com/_/nginx

#拉取Nginx镜像
docker pull nginx

#查看本地镜像列表
docker images

#保存镜像到当前目录文件夹
docker save -o nginx.tar nginx:latest

#删除镜像
docker rmi nginx:latest

#重新load刚刚保存到当前文件夹的tar包
docker load -i nginx.tar

#重新查看镜像,发现nginx回来了
docker images


#----------------------------镜像操作结束,开始容器操作----------------------------


#创建并运行Nginx容器
docker run -d --name nginx -p 80:80 nginx

#查看容器(输出有点复杂
docker ps

#格式化查看方式(输出更加清爽
docker ps --format "table {{.ID}}\t{{.Image}}\t{{.Ports}}\t{{.Status}}\t{{.Names}}"

#停止容器(用ps查不到是因为ps只会查询在run的容器
docker stop nginx

#查看所有的容器(包含非run的
docker ps -a

#再次启动容器
docker start nginx

#进入Nginx容器(如同进入了一台新的计算机,有各种Linux文件目录
docker exec -it nginx bash

#退出容器
exit

#删除容器(删除前必须要先停止容器,用docker stop nginx停止
docker rm nginx

#或者强制删除(不管运行与否
docker rm nginx -f

#删除完之后再用 docker ps -a 也查询不到了,因为是彻底删除了

---------------------镜像、容器操作结束,开始数据卷操作(主要是部署nginx)---------------------

#首先创建容器并指定数据卷(这里来绑定俩个卷),注意通过 -v 参数来指定数据卷
docker run -d --name nginx -p 80:80 \
-v nginx_html:/usr/share/nginx/html \
-v nginx_conf:/etc/nginx \
nginx

#查看数据卷列表
docker volume ls

#查看数据卷详情(nginx_html是刚刚创建的,也是上面这个命令返回结果之一),该命令返回的Mountpoint是宿主机的位置
docker volume inspect nginx_html

#cd进入宿主机的这个目录/var/lib/docker/volumes/nginx_html/_data/
#发现下面有俩个html文件,至此,完成了双向数据绑定

#或者cd进入宿主机的这个目录/var/lib/docker/volumes/nginx_conf/_data/
#修改下面的nginx.conf配置文件,完成反向代理,这里可以将80端口指向https://www.baidu.com
    server {
        listen       80;
        server_name  localhost;
 
        location / {
            root   html;
            index  index.html index.htm;
            proxy_pass  https://www.baidu.com;
        }
    }


#修改完.conf文件后,一定要重启nginx服务(此时就需要进入nginx容器内部执行重启命令
docker exec -it nginx bash
nginx -s reload

#此时直接在浏览器中输入IP地址,就能跳转到百度首页



#---------------创建容器及挂载数据卷的操作结束,接下来进行删除数据卷操作---------------



#删除刚刚的html数据卷(先停掉nginx容器
docker stop nginx

然后清理悬空的资源(主要是清理nginx容器
docker system prune

再删除数据卷
docker volume rm nginx_html
docker volume rm nginx_conf

#最后查看数据卷列表(发现不止列表中nginx_html消失,/var/lib/docker/volumes/的nginx_html目录也消失
docker volume ls

拓展:部署tomcat8

先拉取指定版本的镜像:8

docker pull tomcat:8
#然后可以查看现有的镜像
docker images

然后安装

#tomcat:8:镜像名称,与上述拉取名称一致,前面的tomcat1是自命名的,为什么不命名为tomcat是莫名其妙有容器名冲突,很奇怪,所以改成1
docker run -d --name tomcat1 -p 8080:8080 \
-v tomcat_webapps:/usr/local/tomcat/webapps \
tomcat:8
#以上命令把数据卷在容器创立之初也一起挂载了
#在宿主机的该数据卷目录下新建RGB_HEX文件夹,上传index.html和vue.js,最后浏览器中输入特定url即可访问

拓展:部署minio

先拉取最新镜像

docker pull minio/minio

然后安装

docker run -p 9000:9000 -p 9090:9090 \
--name minio \
-d --restart=always \
-e "MINIO_ACCESS_KEY=minioadmin" \
-e "MINIO_SECRET_KEY=321478965" \
-v minio_data:/data \
-v minio_conf:/root/.minio \
 minio/minio server \
/data --console-address ":9090" -address ":9000"

在浏览器中输入 ​http://IP地址:9090 输入相应的账号密码即可登录minio可视化页面

首先创建bucket桶,这里命名为big-event,然后修改access policy为public,然后在里面上传图片

最后浏览器输入 ​http://IP地址:9000/big-event/avatar.png 即可访问

application.yml配置文件

minio:
  host: http://IP地址:9000
  url: ${minio.host}/${minio.bucket}/
  access-key: minioadmin
  secret-key: 321478965
  bucket: big-event

可以发现,bash命令中只有3个地方出现了9090,且想要登录可视化页面时,也需要指定9090端口

但是其余的一切访问(浏览器直访图片、springboot项目整合)都仍然用的是9000端口

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值