• docker 应用部署


    参考:docker 构建nginx服务

    环境

    Redhat 9

    步骤:

    1、docker部署MySQL

    安装yum 工具包

    1. [root@admin ~]# yum -y install yum-utils.noarch
    2. 正在更新 Subscription Management 软件仓库。
    3. 无法读取客户身份
    4. 本系统尚未在权利服务器中注册。可使用 subscription-manager 进行注册。
    5. AppStream 3.1 MB/s | 3.2 kB 00:00
    6. BaseOS 756 kB/s | 2.7 kB 00:00
    7. 依赖关系解决。
    8. =====================================================================================================================================================================================
    9. 软件包 架构 版本 仓库 大小
    10. =====================================================================================================================================================================================
    11. 安装:
    12. yum-utils noarch 4.3.0-5.el9_2 BaseOS 45 k
    13. 事务概要
    14. =====================================================================================================================================================================================
    15. 安装 1 软件包
    16. 总计:45 k
    17. 安装大小:23 k
    18. 下载软件包:
    19. 运行事务检查
    20. 事务检查成功。
    21. 运行事务测试
    22. 事务测试成功。
    23. 运行事务
    24. 准备中 : 1/1
    25. 安装 : yum-utils-4.3.0-5.el9_2.noarch 1/1
    26. 运行脚本: yum-utils-4.3.0-5.el9_2.noarch 1/1
    27. 验证 : yum-utils-4.3.0-5.el9_2.noarch 1/1
    28. 已更新安装的产品。
    29. 已安装:
    30. yum-utils-4.3.0-5.el9_2.noarch
    31. 完毕!
    32. [root@admin ~]#

    增加阿里云仓库 并去除缓存

    1. [root@admin ~]# yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
    2. 正在更新 Subscription Management 软件仓库。
    3. 无法读取客户身份
    4. 本系统尚未在权利服务器中注册。可使用 subscription-manager 进行注册。
    5. 添加仓库自:http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
    6. [root@admin ~]# yum clean all && yum makecache
    7. 正在更新 Subscription Management 软件仓库。
    8. 无法读取客户身份
    9. 本系统尚未在权利服务器中注册。可使用 subscription-manager 进行注册。
    10. 13 个文件已删除
    11. 正在更新 Subscription Management 软件仓库。
    12. 无法读取客户身份
    13. 本系统尚未在权利服务器中注册。可使用 subscription-manager 进行注册。
    14. Docker CE Stable - x86_64 82 kB/s | 41 kB 00:00
    15. AppStream 85 MB/s | 6.3 MB 00:00
    16. BaseOS 75 MB/s | 1.7 MB 00:00
    17. 元数据缓存已建立。
    18. [root@admin ~]#

    安装docker

    1. root@admin ~]# yum -y install docker-ce*
    2. 正在更新 Subscription Management 软件仓库。
    3. 无法读取客户身份
    4. 本系统尚未在权利服务器中注册。可使用 subscription-manager 进行注册。
    5. 上次元数据过期检查:0:00:43 前,执行于 20240402日 星期二 154019秒。
    6. 依赖关系解决。
    7. =============================================
    8. 省略。。。。。。。。

    配置docker镜像加速(直接复制粘贴即可)

    1. sudo mkdir -p /etc/docker
    2. sudo tee /etc/docker/daemon.json <<-'EOF'
    3. {
    4. "registry-mirrors": ["https://7f40piyw.mirror.aliyuncs.com"]
    5. }
    6. EOF
    7. sudo systemctl daemon-reload
    8. sudo systemctl restart docker

     拉取mysql 镜像文件

    1. root@admin ~]# systemctl restart docker.service
    2. [root@admin ~]# docker pull mysql:5.7
    3. 5.7: Pulling from library/mysql
    4. 72a69066d2fe: Pull complete
    5. 93619dbc5b36: Pull complete
    6. 99da31dd6142: Pull complete
    7. 626033c43d70: Pull complete
    8. 37d5d7efb64e: Pull complete
    9. ac563158d721: Pull complete
    10. d2ba16033dad: Pull complete
    11. 0ceb82207cd7: Pull complete
    12. 37f2405cae96: Pull complete
    13. e2482e017e53: Pull complete
    14. 70deed891d42: Pull complete
    15. Digest: sha256:f2ad209efe9c67104167fc609cca6973c8422939491c9345270175a300419f94
    16. Status: Downloaded newer image for mysql:5.7
    17. docker.io/library/mysql:5.7
    18. [root@admin ~]#

    创建mysql数据卷目录

    1. [root@admin ~]# mkdir /docker_mysql/data -p
    2. [root@admin ~]#

    创建容器拷⻉配置⽂件⽬录到/docker_mysql⽬录 (由于数据卷目录没有MySQL所需的配置文件所以需要此步)

    1. [root@admin ~]# docker run -id --name mysql -e mysql_root_password=1 mysql:5.7
    2. 4ebc146b1082d5c814476d6c76ccff11f893f1279e071840f1b9482018cc07e6
    3. [root@admin ~]# docker cp mysql:/etc/mysql/ /docker_mysql/
    4. Successfully copied 12.3kB to /docker_mysql/
    5. [root@admin ~]#

     删除容器

    1. [root@admin ~]# docker rm mysql
    2. mysql
    3. [root@admin ~]#
    4. [root@admin ~]# docker ps -a
    5. CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
    6. [root@admin ~]#

     创建MySQL容器并挂载数据卷

    1. [root@admin ~]# docker run -id --name msql -p 3306:3306 -v /docker_mysql/mysql/:/etc/mysql -v /docker_mysql/data/mysql:/var/lib/mysql -v /docker_mysql/logs:/var/log/mysql -e MYSQL_ROOT_PASSWORD=1 mysql:5.7
    2. 138fe053e936f66787adf2c8242122ea1283d2e00e1647ea0da78d5b0c5227ca
    3. [root@admin ~]#

     进入数据库测试

    1. [root@admin ~]# docker exec -it msql /bin/bash
    2. root@138fe053e936:/# mysql -uroot -p1
    3. mysql: [Warning] Using a password on the command line interface can be insecure.
    4. Welcome to the MySQL monitor. Commands end with ; or \g.
    5. Your MySQL connection id is 2
    6. Server version: 5.7.36 MySQL Community Server (GPL)
    7. Copyright (c) 2000, 2021, Oracle and/or its affiliates.
    8. Oracle is a registered trademark of Oracle Corporation and/or its
    9. affiliates. Other names may be trademarks of their respective
    10. owners.
    11. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
    12. mysql>

    2、docker部署nginx

    拉取镜像

    1. [root@admin ~]# docker pull nginx
    2. Using default tag: latest
    3. latest: Pulling from library/nginx
    4. a2abf6c4d29d: Pull complete
    5. a9edb18cadd1: Pull complete
    6. 589b7251471a: Pull complete
    7. 186b1aaa4aa6: Pull complete
    8. b4df32aa5a72: Pull complete
    9. a0bcbecc962e: Pull complete
    10. Digest: sha256:0d17b565c37bcbd895e9d92315a05c1c3c9a29f762b011a10c54a66cd53c9b31
    11. Status: Downloaded newer image for nginx:latest
    12. docker.io/library/nginx:latest
    13. [root@admin ~]#

     创建数据卷目录

    1. [root@admin ~]# mkdir -p /docker_nginx/html
    2. [root@admin ~]# mkdir -p /docker_nginx/logs
    3. [root@admin ~]#

    拷贝nginx配置文件

    1. [root@admin ~]# docker run -id --name nginx nginx:latest
    2. 576c4841c72b52696d991905d4bb357a9ab5e69257d4b2c0014213f155e5b126
    3. [root@admin ~]# docker cp nginx:/etc/nginx /docker_nginx/
    4. Successfully copied 16.9kB to /docker_nginx/
    5. [root@admin ~]# cd /d
    6. dev/ docker_mysql/ docker_nginx/
    7. [root@admin ~]# cd /docker_nginx/
    8. [root@admin docker_nginx]# ls
    9. html logs nginx
    10. [root@admin docker_nginx]#

     删除容器

    1. [root@admin ~]# docker stop nginx
    2. nginx
    3. [root@admin ~]# docker rm nginx
    4. nginx
    5. [root@admin ~]#

     创建nginx容器并挂载数据卷

    [root@admin ~]# docker run -id --name nginx -p 80:80 -v /docker_nginx/nginx/:/etc/nginx -v /docker_nginx/html:/usr/share/nginx/html -v /docker_nginx/logs/:/var/log/nginx  nginx

    curl命令测试

    1. [root@admin ~]# curl 192.168.200.133
    2. <html>
    3. <head><title>403 Forbidden</title></head>
    4. <body>
    5. <center><h1>403 Forbidden</h1></center>
    6. <hr><center>nginx/1.21.5</center>
    7. </body>
    8. </html>
    9. [root@admin ~]#

     发现403错误(没有index.html文件)

    检查配置文件没有index.html文件

    进入nginx/html下增加文件

    1. [root@admin html]# ls
    2. [root@admin html]# vim index.html
    3. [root@admin html]# cat index.html
    4. sadggh1k
    5. [root@admin html]#

    curl命令测试

    1. [root@admin html]# curl 192.168.200.133
    2. sadggh1k
    3. [root@admin html]

    3、docker部署tomcat

    拉取tomcat镜像文件

    1. [root@admin html]# docker pull tomcat
    2. Using default tag: latest
    3. latest: Pulling from library/tomcat
    4. 0e29546d541c: Pull complete
    5. 9b829c73b52b: Pull complete
    6. cb5b7ae36172: Pull complete
    7. 6494e4811622: Downloading [========================================> ] 44.38MB/54.57MB
    8. 6494e4811622: Downloading [=========================================> ] 44.91MB/54.57MB
    9. 6494e4811622: Downloading [============================================> ] 48.61MB/54.57MB
    10. 8f7c0eebb7b1: Downloading [========> ] 34.34MB/203.1MB
    11. 6494e4811622: Downloading [=============================================> ] 49.14MB/54.57MB
    12. 6494e4811622: Downloading [=============================================> ] 49.67MB/54.57MB
    13. 6494e4811622: Pull complete
    14. 668f6fcc5fa5: Pull complete
    15. dc120c3e0290: Pull complete
    16. 8f7c0eebb7b1: Pull complete
    17. 77b694f83996: Pull complete
    18. 0f611256ec3a: Pull complete
    19. 4f25def12f23: Pull complete
    20. Digest: sha256:9dee185c3b161cdfede1f5e35e8b56ebc9de88ed3a79526939701f3537a52324
    21. Status: Downloaded newer image for tomcat:latest
    22. docker.io/library/tomcat:latest

     创建数据卷目录

    1. [root@admin ~]# mkdir /tomcat
    2. [root@admin ~]#

     创建容器拷贝配置文件

    1. [root@admin ~]# docker run -id --name=tomcat tomcat
    2. /bin/bash
    3. 049add93e21773d1175e9de2c5aecbde99069bc552ea5e58fe43486dd7dc19af
    4. [root@admin ~]#
    5. [root@admin ~]# docker cp tomcat:/usr/local/tomcat /tomcat/
    6. Successfully copied 19.3MB to /tomcat/
    7. [root@admin ~]# cd /tomcat/
    8. [root@admin tomcat]# ls
    9. tomcat
    10. [root@admin tomcat]#

     删除容器

    1. [root@admin tomcat]# docker rm tomcat
    2. tomcat

    创建容器挂载数据卷

    1. [root@admin ~]# docker run -id --name=tomcat -p 8080:8080 -v /tomcat/tomcat:/usr/local/tomcat tomcat
    2. e91774eaac35ff405287d52876cd59779f2bcab577e4550b26591eaa013fd124
    3. docker: Error response from daemon: driver failed programming external connectivity on endpoint tomcat (b69726032861fe417817221d9f3a175fa2df831efbc849e9367fc6c3158c22d2): (iptables failed: iptables --wait -t nat -A DOCKER -p tcp -d 0/0 --dport 8080 -j DNAT --to-destination 172.17.0.4:8080 ! -i docker0: iptables: No chain/target/match by that name.
    4. (exit status 1)).

    报出错误重启docker即可

    1. [root@admin ~]# systemctl restart docker.service
    2. [root@admin ~]# docker ps
    3. CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
    4. [root@admin ~]# docker ps -a
    5. CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
    6. e91774eaac35 tomcat "catalina.sh run" 3 minutes ago Created tomcat
    7. 31405e9d01c0 nginx "/docker-entrypoint.…" 20 minutes ago Exited (0) 13 seconds ago nginx
    8. 138fe053e936 mysql:5.7 "docker-entrypoint.s…" 28 minutes ago Exited (0) 11 seconds ago msql
    9. [root@admin ~]# docker start tomcat
    10. tomcat

    创建tomcat网页文件

    1. [root@admin ~]# mkdir /tomcat/tomcat/webapps/ROOT
    2. [root@admin ~]# cd /tomcat/tomcat/webapps/ROOT
    3. [root@admin ROOT]# vim index.html
    4. [root@admin ROOT]# cat index.html
    5. sagdshgk1
    6. [root@admin ROOT]#

    测试

    1. [root@admin ~]# curl 192.168.200.133:8080
    2. sagdshgk1
    3. [root@admin ~]#

  • 相关阅读:
    matlab 遗传算法GA优化汽车四分之一车体主动悬架PID
    【LeetCode-中等】33.搜索旋转排序数组 - 二分法
    2022-2028年全球与中国便携式茶包市场现状及未来发展趋势分析报告
    Unity Shader第二章作业
    lambda nodejs 函数降低冷启动时间的最佳实践
    深入理解.Net中的线程同步之构造模式(二)内核模式3.内核模式构造物Mutex
    网络层的七七八八
    项目一:使用 Spring + SpringMVC + Mybatis + lombok 实现网络五子棋
    华为云云耀云服务器L实例评测|在 Centos & Docker 中使用Nginx部署Vue项目
    23种设计模式(二十一)备忘录模式(阁瑞钛伦特软件-九耶实训)
  • 原文地址:https://blog.csdn.net/WWNY666/article/details/137280752