docker常用软件安装教程最详细版安装最完善的无漏洞可以直接实战使用(tomcat,redis,MySQL等)

  • TomCat

  • 假如你要安装最新版的tomcat请看下面第一部分

    第一部分:

  1. 先通过docker images 查看安装的镜像
  2. 使用docker pull tomcat,等待运行之后查看docker images
  3. 使用docker run -d -p 8080:8080 --name tom tomcat启动tomcat(注意如果你的电脑上已经启动了tomcat会出现8080端口冲突,可以先关掉原来的tomcat使用指令ps -ef | grep tomcat查看是否有tomcat进程,如果有可以使用kill -9 进程号或者进入tomcat的bin目录下cd /opt/tomcat/apache-tomcat-8.5.59/bin使用./shutdown.sh脚本指令停止)再次重新启动docker指令即可!
  4. 使用docker ps查看进程,此时访问tomcat地址会出现404界面不必担心,正常现象,最新版的tomcat服务器就是这样子,那么怎么改变呢?接下来看:
  5. 访问原因:6dd4f9f1705949ce9b7aba22ee461a31.png
  6. 在tomcat服务器进入之后我们发现在webapps这个目录下是空的,正常情况下应该是有一个访问界面的,这就是因为新版的tomcat的webapps被放在了webapps.dist中了
  7. 解决问题(不解决也没关系都能用的):

 b53cd1db4bbb49deb599f35e4002aca5.png

 

  • 我们退出到上一级目录,删除掉webapps并且把webapps.dist移动到webapps中就可以到正常界面了!(补充:在我们进入的每一个容器都相当于一个精简版的Linux内核可以操作简单的Linux指令)

    假如你要安装指定版的tomcat请看下面第二部分

    第二部分:

  1. 直接使用:docker pull billygoo/tomcat8-jdk8拉取镜像,拉取得是tomcat 8.x的版本
  2. 使用:docker run -d -p 8080:8080 --name mytomcat8 billygoo/tomcat8-jdk8直接运行即可访问服务器不再报404
  3. 建议使用指定版本的tomcat更稳定(小技巧分享删除镜像释放磁盘空间方法:指令指令:docker ps -a | awk '{print $1}' | grep -v '128fb068d11f' | xargs docker rm,解释:docker ps -a 是列出所有的容器包括已经停止的,通过awk '{print $1}'拿到第一列数据即ID,grep -v '128fb068d11f'是表示你要排除的那些数据也就是你要保留的容器,最后通过xargs获取输入的数据即管道符输入的xargs docker rm进行删除)
  • MySQL(以5.7版本为例)

 

        

 

  1. 第一步拉取镜像:docker pull mysql:5.7
  2. 查看:docker images如果没出错就有了
  3. 接下来运行MySQL:docker run -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root -d mysql:5.7 注意要有运行环境就是设置密码!(如果你的系统上已经启动了一个MySQL会产生端口冲突可以停止原来的MySQL服务:查看systemctl status mysqld停止服务:systemctl stop mysqld)
  4. 最好是使用一次docker ps查看是否确定已经启动!
  5. 进入MySQL容器操作MySQL:docker exec -it 035af3972f5f /bin/bash并且可以使用mysql -uroot -p在输入当时设置的密码即可!(在外部的可不短例如sqlyog也可以连接成功)
  6. 此时有个问题:就是在插入含有中文的数据时会出现乱码报错解决方案:在docker的MySQL中运行show variables like 'character%';显示出当前的MySQL的编码发现都是拉丁文;7521eeaf0261443bb8daca0503d06bb2.png

 

还有一个问题:假如有一个“很贱的人”删除了你的容器:docker rm -f 容器id,此时你的MySQL数据就全完了,只能跑路了,为了避免这样的事情发生,接下来会有解决方案:数据卷;

7.问题一(乱码问题)解决:通过下面问题二运行镜像之后在/alibaixiu/mysq/conf下面创建一个             文 件:vim my.cnf 在里面写入

  1. [client]
    default_character_set=utf8
    [mysqld]
    collation_server = utf8_general_ci
    character_set_server = utf8
    

    就是把编码改为utf8;然后重启MySQL服务即可解决编码问题!查看编码:196bdcd6529241bb9ae0067e3053113a.png

  2. 注意:修改之后编码字符集之前的数不会生效只有在之后创建的参会生效,建议在启用容器之后第一件事就是修改编码!!!

  3. 问题二(删库跑路问题)解决:使用容器数据卷来进行一种备份使用指令:

  4. Docker run -d -p 3306:3306 --privileged=true

    -v /alibaixiu/mysql/log:/var/log/mysql

    -v /alibaixiu/mysql/data:/var/lib/mysql

    -v /alibaixiu/mysql/conf:/etc/mysql/conf.d

    -e MYSQL_ROOT_PASSWORD=root

    --name mysql

    mysql:5.7

    (可以在宿主机上提前创建好一个目录/alibaixiu)

    执行完这个命令之后就会有数据卷存在防止有删库跑路的行为破坏!

    怎么使用数据卷恢复数据呢?接下来继续说:

    没错,很简单!直接运行:

    Docker run -d -p 3306:3306 --privileged=true

    -v /alibaixiu/mysql/log:/var/log/mysql

    -v /alibaixiu/mysql/data:/var/lib/mysql

    -v /alibaixiu/mysql/conf:/etc/mysql/conf.d

    -e MYSQL_ROOT_PASSWORD=root

    --name mysql

    mysql:5.7

    即可,数据还是存在的!!!

    好了!结束了!问题全部解决!各位去试一下吧!

  • Redis(以redis:6.0.8为例)

··如果你需要密码就找到requirepass ‘密码’开启注释即可!

··必须要做的:开启是否允许外部连接:注释掉#bind 127.0.0.1即可!

··必须要做的把daemonize yes注释掉或者改为no因为该配置会与 docker run中的-d冲突,导致     启动失败!

··是否要开启redis持久化appendonly yes可以做也可以不做!

注意这里的启动方式变了是redis-server /etc/redis/redis.conf是要让宿主机读取config文件来启动redis

启动之后查看ps:docker ps然后进入容器:docker exec -it myredis /bin/bash最后直接启动:redis-cli有密码就是:redis-cli -a 1234即可!

8.最后我们修改宿主机上的配置时对应的docker容易也会被同步,并且保证数据安全!

写在最后:每次安装软件都要实操,实践出真知!!!

 

  1. 准备好环境
  2. 同样redis拉取:docker pull redis:6.0.8
  3. Docker run -d -p 6379:6379 redis:6.0.8然后执行redis.cli就行了?注意这个命令不能达到是实战要求,这里就不废话了,直接上复杂强度!!
  4. 先新建一个redis的目录:mkdir -p /app/redis
  5. 拷贝一份redis.conf到我们的目录下:cp /myredis/redis.conf  /app/redis 注意路径是个性化的!!!注意修改!!!
  6. 修改redis.conf文件:vim redis.conf;是否需要密码:
  7. 运行镜像:
    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:6.0.8
    
    redis-server /etc/redis/redis.conf
  8. 注意这里的启动方式变了是redis-server /etc/redis/redis.conf是要让宿主机读取config文件来启动redis
  9. 启动之后查看ps:docker ps然后进入容器:docker exec -it myredis /bin/bash最后直接启动:redis-cli有密码就是:redis-cli -a 1234即可!
  10. 最后我们修改宿主机上的配置时对应的docker容易也会被同步,并且保证数据安全!

     写在最后:每次安装软件都要实操,实践出真知!!!

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值