码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • Docker下常规软件安装


    Docker下常规软件安装

    • 1. Docker 安装tomcat
      • 1.1 docker hub上面查找tomcat镜像
      • 1.2 拉取tomcat
      • 1.3 启动tomcat
      • 1.4 访问tomcat
        • 1.4.1. 查看防火墙状态
        • 1.4.2. 开启防火墙
        • 1.4.3. 查看端口信息
        • 1.4.4. 开启端口和重启防火墙
        • 1.4.5. 重启docker
        • 1.4.6. 重启tomcat
        • 1.4.7. 阿里云服务器需要开放8080端口
        • 1.4.8. 访问成功
    • 2. Docker 安装mysql
      • 2.1 Docker hub上面查找mysql镜像
      • 2.2 从docker hub上(阿里云加速器)拉取mysql镜像到本地标签为5.7
      • 2.3 使用mysql5.7镜像创建容器(也叫运行镜像)
        • 2.3.1 根据官网命令安装
        • 2.3.2 进入容器
        • 2.3.3 连接mysql
        • 2.3.4 创建数据库
        • 2.3.5 创建数据表
        • 2.3.6 插入数据
        • 2.3.7 查看数据
        • 2.3.8 插入中文,报错
        • 2.3.9 查看字符集
        • 2.3.10 问题思考
    • 3. Docker 安装mysql(实战版)
      • 3.1 新建mysql容器实例
      • 3.2 新建my.cnf
      • 3.3 写入内容
      • 3.4 查看文件
      • 3.5 重新启动mysql容器实例再重新进入并查看字符编码
      • 3.6 结论
    • 4. 安装redis
      • 4.1 从docker hub上(阿里云加速器)拉取redis镜像到本地标签为6.0.8
      • 4.2 入门命令
      • 4.3 在CentOS宿主机下新建目录/software/redis
      • 4.4 将一个redis.conf文件模板拷贝进/software/redis目录下
      • 4.5 开启redis验证 可选
      • 4.6 允许redis外地连接 必须
      • 4.7 开启redis数据持久化
      • 4.8 使用redis6.0.8镜像创建容器(也叫运行镜像)
      • 4.9 测试redis-cli连接上来
    • 5. 安装Ngnix

    1. Docker 安装tomcat

    1.1 docker hub上面查找tomcat镜像

     docker search tomcat
    
    
    • 1
    • 2

    1.2 拉取tomcat

     docker pull tomcat:8.0.53
    
    • 1

    1.3 启动tomcat

    docker run -it -p 8080:8080 tomcat:8.0.53
    docker run -it -p 8080:8080 --name tomcat-8 tomcat:8.0.53
    
    
    • 1
    • 2
    • 3

    1.4 访问tomcat

    出现了无法访问情况。

    1.4.1. 查看防火墙状态

    systemctl status firewalld
    
    
    • 1
    • 2

    1.4.2. 开启防火墙

    systemctl start firewalld
    
    
    • 1
    • 2

    1.4.3. 查看端口信息

    firewall-cmd --list-ports  # 只看端口信息
    
    • 1

    1.4.4. 开启端口和重启防火墙

    开端口命令:firewall-cmd --zone=public --add-port=8080/tcp --permanent
    重启防火墙:systemctl restart firewalld.service
    
    • 1
    • 2

    1.4.5. 重启docker

    systemctl restart docker 
    
    • 1

    1.4.6. 重启tomcat

     docker restart 73f1990b9b40
    
    • 1

    1.4.7. 阿里云服务器需要开放8080端口

    在这里插入图片描述

    1.4.8. 访问成功

    在这里插入图片描述

    2. Docker 安装mysql

    2.1 Docker hub上面查找mysql镜像

    docker search mysql 
    
    • 1

    2.2 从docker hub上(阿里云加速器)拉取mysql镜像到本地标签为5.7

    docker pull mysql:5.7
    
    • 1

    2.3 使用mysql5.7镜像创建容器(也叫运行镜像)

    2.3.1 根据官网命令安装

    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
    
    • 1
    • 2
    • 3
    • 4

    出现错误

    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.
    
    
    • 1
    • 2

    问题原因,宿主机阿里云服务器上也启动了mysql
    在这里插入图片描述
    所以docker内的mysql换一个端口3336

    docker run -p 3306:3336 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7
    
    • 1

    启动成功

    2.3.2 进入容器

     docker exec -it 55a5e792eeb3 /bin/bash
    
    • 1

    2.3.3 连接mysql

     mysql -uroot -p
    
    • 1

    2.3.4 创建数据库

     create database db01;
    
    • 1

    2.3.5 创建数据表

    use db01;
    create table t1(id int,name varchar(100));
    
    • 1
    • 2

    2.3.6 插入数据

     insert into t1 values(1, 'chent');
    
    • 1

    2.3.7 查看数据

     select * from t1;
    
    • 1

    在这里插入图片描述

    2.3.8 插入中文,报错

    在这里插入图片描述

    2.3.9 查看字符集

    SHOW VARIABLES LIKE 'character%'
    
    • 1

    2.3.10 问题思考

    1. 删除容器后,里面的mysql数据如何办?
    2. 容器实例一删除,你还有什么? 删容器到跑路。。。。。?

    3. Docker 安装mysql(实战版)

    3.1 新建mysql容器实例

    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
    
    • 1

    3.2 新建my.cnf

     vim my.cnf
    
    • 1

    3.3 写入内容

    [client]
    default_character_set=utf8
    [mysqld]
    collation_server = utf8_general_ci
    character_set_server = utf8
    
    • 1
    • 2
    • 3
    • 4
    • 5

    3.4 查看文件

     cat my.cnf
    
    • 1

    在这里插入图片描述

    3.5 重新启动mysql容器实例再重新进入并查看字符编码

    在这里插入图片描述
    字符集已经修改

    3.6 结论

    之前的DB 无效

    修改字符集操作+重启mysql容器实例

    之后的DB 有效,需要新建

    结论:docker安装完MySQL并run出容器后,建议请先修改完字符集编码后再新建mysql库-表-插数据

    4. 安装redis

    4.1 从docker hub上(阿里云加速器)拉取redis镜像到本地标签为6.0.8

    docker pull redis:6.0.8
    
    • 1

    4.2 入门命令

     docker run -d -p 6379:6379 --name redis6 redis:6.0.8
    
    • 1

    命令提醒:容器卷记得加入–privileged=true

    4.3 在CentOS宿主机下新建目录/software/redis

    [root@iZbp10sz66ubwpbh2bw9jbZ ~]# cd /software
    [root@iZbp10sz66ubwpbh2bw9jbZ software]# mkdir redis
    [root@iZbp10sz66ubwpbh2bw9jbZ software]# ls
    mysql  redis
    [root@iZbp10sz66ubwpbh2bw9jbZ software]# cd redis
    [root@iZbp10sz66ubwpbh2bw9jbZ redis]# 
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    4.4 将一个redis.conf文件模板拷贝进/software/redis目录下

    在这里插入图片描述

    /software/redis目录下修改redis.conf文件

    4.5 开启redis验证 可选

    requirepass 123
    
    • 1

    4.6 允许redis外地连接 必须

     注释掉 # bind 127.0.0.1
    
    • 1

    在这里插入图片描述

    daemonize no

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

    在这里插入图片描述

    4.7 开启redis数据持久化

     appendonly yes  可选
    
    • 1

    在这里插入图片描述

    4.8 使用redis6.0.8镜像创建容器(也叫运行镜像)

    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
    
    • 1

    很遗憾,没起来
    在这里插入图片描述
    用docker logs 查看日志

    在这里插入图片描述
    意思是配置文件,第七行,有个空格

    在这里插入图片描述
    删除空格,重新启动

    在这里插入图片描述

    4.9 测试redis-cli连接上来

    docker exec -it myredis6 redis-cli
    
    • 1

    在这里插入图片描述

    5. 安装Ngnix

    太简单了,略~~~

  • 相关阅读:
    cubemx 使用 学习跳转链接
    Java网络编程 - 网络基础、Socket网络编程、TCP和UDP网路编程、URL编程
    基于BS架构的校园爱心捐赠与物品交换平台的设计与实现 毕业设计-附源码301133
    不学会装饰器,面试不敢说自己会Python
    cs11 Python flask Python
    稳定性实践:开关和预案
    量子计算机-初级入门
    CocosCreator:背景滚动 、背景循环滚动
    使用golang及gorm通过MySQL实现消息队列,保证日志先行,持久化,失败补偿,事务性多客户端并发消费,可水平扩展...
    阿龙的感悟
  • 原文地址:https://blog.csdn.net/weixin_42620326/article/details/125400334
  • 最新文章
  • 沪漂五周年了:我越来越迷茫了
    Agentic Skill Routing 实战:别再把所有 Skill 塞进 AI Agent 上下文
    MySQL-Seconds_behind_master的精度误差
    [MAF预定义ChatClient中间件-03]CachingChatClient——利用缓存省钱省时间
    AI的至暗历史:从万众期待到被政府撤资,AI的两次死亡徘徊
    Agent OS :五种驯服不确定性的范式
    PortSwigger SQL注入LAB11
    数据库即时编译JIT
    [Begin]AI Learn Data Day 0
    深度学习进阶(二十七)现代 LLM 的核心架构设计其二:SwiGLU
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号