本文咱们将通过按照Tomcat、按照MySQL、安装Redis这三个实战安装,来熟悉在docker中怎么安装软件,咱们使用端口映射,及数据卷的使用场景

安装的总体步骤:

1:搜索镜像;

2:拉取镜像;

3:查看镜像;

4:启动镜像==>需要做服务断开映射;

5:停止镜像;

6:移除镜像

案例一:安装tomcat

我们可以看到重启成功了。来,访问下试试:

这是为什么?

因为新版tomcat做了修改。我们进入到tomcat目录:

会发现有webapps及webapps.dist两个目录。我们知道,tomcat的应用一般都是存放在webapps中的。

我们进入到webapps看看:

我们发现,webapps文件夹下面竟然是空。

所以,我们访问的时候,就是404了。

修改:将webapps目录删除掉,将webapps.dist修改成webapps再测试

再次访问:

可以看到访问到是tomcat10 。

那么我想用tomcat8怎么办?

docker pull billygoo/tomcat8-jdk8

docker run -d -p 8080:8080 --name tomcat8 billygoo/tomcat8-jdk8

案例二:mysql的安装

本次以mysql5.7为例:

docker pull mysql:5.7

启动命令公式:

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

说明:-e就是设置环境变量。

通过命令行连接到mysql:

通过命令进入到容器中:

docker exec -it 2303fc3dbe68 /bin/bash

mysql -uroot -p

OK,进入到mysql中了。

接着我们通过命令,创建表,insert数据,然后在查询。

create database dockerdb01;

use dockerdb01;

insert into t1 values(1,'kaigejava');

select * from t1;

在外部的win10系统中使用Navicat连接试试 。

mysql容器宿主机的ip:192.168.50.128.

OK .可以连接。

遇到的问题:

问题一:乱码

当插入中文的时候,报错

这是为什么呢?因为docker中,默认的字符编码导致的。

都是latin1的字符编码。

问题2:删除容器后,里面的mysql数据如何办?

是不是应该做个数据卷挂载。

综上所述,我们按照mysql应该使用以下方式:

实战版命令:

docker run -d -p 3306:3306 --privileged=true -v /宿主机上mysqllog全路径:/容器内部log路径 -v /宿主机mysqldata全部路径:/容器中mysqldata路径 -v /宿主机中mysqlconf全路径:/容器中mysqlconfLuj  -e MYSQL_ROOT_PASSWORD=123456 --name mysql57 mysql:5.7

在宿主机上创建mysql的conf文件:

内容为:

vim my.cnf

[client]

default_character_set=utf8

[mysqld]

collation_server=utf8_general_ci

character_set_server=utf8

案例命令:

docker run -d -p 3306:3306 --privileged=true -v /root/mysql/log:/var/log/mysql -v /root/mysql/data:/var/lib/mysql -v /root/mysql/conf:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=123456 --name mysql57 mysql:5.7

启动后查看docker当前运行的容器:

案例3:常规安装Redis

1:pull redis 6.0.8

2:在宿主机创建/app/redis

3:将任意redis.conf文件复制到宿主机的/app/redis中

4:修改redis.conf配置文件,使其能让外部连接

5:启动reids.实战启动命令:

docker run -p 6379:6379 --name reids608 --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

注意:权限不足也会导致启动redis失败

复制过去的redis.conf需要赋权

重新赋权后:

查看当前运行的容器。有reids.OK

直通车,本系列教程已发布文章,快速到达,《Docker学习系列》教程已经发布的内容如下:

【图文教程】Windows11下安装Docker Desktop

【填坑】在windows系统下安装Docker Desktop后迁移镜像位置

【Docker学习系列】Docker学习1-docker安装

【Docker学习系列】Docker学习2-docker设置镜像加速器

【Docker学习系列】Docker学习3-docker的run命令干了什么?docker为什么比虚拟机快?

【Docker学习系列】Docker学习2-常用命令之启动命令和镜像命令

【Docker学习系列】Docker学习系列3:常用命令之容器命令

【Docker学习系列】Docker学习4-常用命令之重要的容器命令

【Docker教程系列】Docker学习5-Docker镜像理解

【Docker教程系列】Docker学习6-Docker镜像commit操作案例

【Docker学习教程系列】7-如何将本地的Docker镜像发布到阿里云

【Docker学习教程系列】8-如何将本地的Docker镜像发布到私服?

「Docker学习系列教程」9-Docker容器数据卷介绍

「Docker学习系列教程」10-Docker容器数据卷案例

【Docker学习教程系列汇总】笔记及遇到问题解决文章

结束语

如操作有问题欢迎去 我的个人博客(www.kaigejava.com)留言或者 微信公众号(凯哥Java)留言交流哦。

Docker学习11-Docker常规方式安装软件的更多相关文章

  1. Docker学习笔记 — Docker私有仓库搭建

    Docker学习笔记 — Docker私有仓库搭建   目录(?)[-] 环境准备 搭建私有仓库 测试 管理仓库中的镜像 查询 删除 Registry V2   和Mavan的管理一样,Dockers ...

  2. Docker学习之Docker容器基本使用

    Docker学习之Docker容器基本使用 新建容器并启动 命令格式:docker run --options repository:tag 后台运行 命令格式:-d 已存在的容器相关操作 启动:do ...

  3. Docker学习之Docker镜像基本使用

    Docker学习之Docker镜像基本使用 获取镜像 命令格式:docker pull [选项] [Docker Registry 地址[:端口号]/]仓库名[:标签] 例如: docker pull ...

  4. Docker学习:Docker安装和基本使用

    Docker Docek是一种容器技术.容器是一种轻量级.可移植.自打包的软件技术,使应用程序可以在几乎任何地方以相同的方式运行. 使用者可以在笔记本上创建并测试好的容器,无需任何修改就能够在生产系统 ...

  5. DOCKER学习_016:Docker镜像仓库和HARBOR的简单安装和管理

    一 镜像仓库介绍 1.1 简介 镜像仓库用于存放 Docker镜像 Docker registry提供镜像仓库服务 一个 Docker registry可以包含多个镜像仓库 仓库分为公共镜像仓库与私有 ...

  6. Docker学习笔记-Docker for Linux 安装

    前言: 环境:centos7.5 64 位 正文: Docker 软件包已经包括在默认的 CentOS-Extras 软件源里.因此想要安装 docker,只需要运行下面的 yum 命令: yum i ...

  7. Docker学习之1—基础及安装

    Docker介绍: Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化.容器是完全使用沙箱机制 ...

  8. Docker学习笔记一 概念、安装、镜像加速

    本文地址:https://www.cnblogs.com/veinyin/p/10406378.html  Docker 是一个容器,可以想象成一个轻便的虚拟机,但不虚拟硬件和操作系统. 优点:启动快 ...

  9. Docker学习笔记(1):CentOS7安装Docker

    Docker是一个基于Go语言实现的开源应用容器引擎,通过对应用组件的封装.分发.部署.运行等生命周期的管理,使程序及其运行环境能够做到"一次封装,到处运行". Docker架构 ...

  10. docker学习:docker安装

    Centos7 安装docker 下载安装 yum install docker-ce 启动docker systemctl start docker 创建并编写镜像加速文件 vim /etc/doc ...

随机推荐

  1. UML建模、设计原则

    # UML统一建模语言 定义: 用于软件系统设计与分析的语言工具 目的: 帮助开发人员更好的梳理逻辑.思路 官网: https://www.omg.org/spec/UML 画图工具可以用在线网址:h ...

  2. windows下rust环境的安装(现在是2023年5月份)

    在自己家电脑上安装一下rust,还是遇到一些问题,这里记录一下,免得后面再踩坑. 官方网站 获取主要信息还得靠官网,比如安装软件:) 地址是 https://www.rust-lang.org/zh- ...

  3. Java 集合框架迭代器(Iterator)

    什么是迭代器 使用循环遍历集合 普通for循环 for(int i=0;i<10;i++){} 增强for循环 for(String str:list){} 什么是迭代器Iterator Ite ...

  4. 解决方案 | pyautogui实现等待特定图片(对话框)出现(可设置等待超时时间)

    1.问题 为了等待某个[转换完毕]的图片(对话框)出现,如何设置? 2.解决方案代码如下 下面代码实现的是:设置超时时间为10s,当你在完成前序工作以后,代码开始进入等待,一旦你的特定图片出现了,马上 ...

  5. 在宝塔上配置打包好的vue3项目

    配置文件如下 server{ listen 80; server_name gongchang.365cb.cn; index index.html index.htm default.php def ...

  6. 背景色透明度兼容IE8的写法

    本文为Echoyya.所创,转载请带上原文链接,感谢 https://www.cnblogs.com/echoyya/p/14236242.html 通常的做法 目前大多数浏览器都支持 CSS3,只需 ...

  7. 基于Java网络书店商城设计实现(源码+lw+部署文档+讲解等)

    系统介绍: 随着科学技术的飞速发展,各行各业都在努力与现代先进技术接轨,通过科技手段提高自身的优势:对于网络书店商城当然也不能排除在外,随着网络技术的不断成熟,带动了网络书店商城,它彻底改变了过去传统 ...

  8. Elasticjob执行job幂等

    ElasticJob的幂等机制,是指作业分片执行的幂等,他需要做到以下两点: 同一个分片在当前作业实例上不会被重复执行 一个作业分片不能同时在多个作业实例上执行 如何实现幂等 场景模拟:存在任务A执行 ...

  9. Linux下搭建Elasticsearch7.6.2集群

    使用VMvare创建虚拟机 我的创建的三台分别是: 192.168.115.129 node-1 192.168.115.130 node-2 192.168.115.131 node-3 注意:克隆 ...

  10. os.popen(cmd) 与 os.system(cmd) 的区别

    os.popen(cmd) 与 os.system(cmd) 的区别 1,os.popen(cmd) 不会直接返回任何数据,os.system(cmd) 会直接输出结果(返回的却是int状态码) 2, ...