【云原生 | Docker 基础篇】09、Docker 常规安装软件步骤

导读:本篇文章讲解 【云原生 | Docker 基础篇】09、Docker 常规安装软件步骤,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

目录

一、总体步骤

二、安装tomcat

1.docker hub上面查找tomcat镜像

​2.从docker hub上拉取tomcat镜像到本地

3.查看是否有拉取到的 tomcat

4.使用tomcat镜像创建容器实例(也叫运行镜像)

5.访问 Tomcat 首页

6.免修改版 tomcat

三、安装 mysql

1.拉取mysql镜像,这次拉取 mysql 5.7 版本

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

3.实战篇

四、安装 Redis

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

2.Redis 入门命令

3.在宿主机创建 redis.conf 文件

4.修改 redis.conf 配置内容

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

6.测试连接 redis


一、总体步骤

  1. 搜索镜像
  2. 拉取镜像
  3. 查看镜像
  4. 启动镜像(服务端口映射)
  5. 停止容器
  6. 移除容器

二、安装tomcat

1.docker hub上面查找tomcat镜像

  • docker search tomcat

【云原生 | Docker 基础篇】09、Docker 常规安装软件步骤2.从docker hub上拉取tomcat镜像到本地

  • docker pull tomcat

【云原生 | Docker 基础篇】09、Docker 常规安装软件步骤

3.查看是否有拉取到的 tomcat

  • docker images tomcat

【云原生 | Docker 基础篇】09、Docker 常规安装软件步骤

4.使用tomcat镜像创建容器实例(也叫运行镜像)

  • docker run -d -p 8080:8080 –name t1 tomcat

【云原生 | Docker 基础篇】09、Docker 常规安装软件步骤

5.访问 Tomcat 首页

【云原生 | Docker 基础篇】09、Docker 常规安装软件步骤解决办法: ​

  • 可能没有映射端口或者没有关闭防火墙
  • 把webapps.dist目录换成webapps

(1)重新进入 Tomcat

发现 webapps 目录为空:

【云原生 | Docker 基础篇】09、Docker 常规安装软件步骤

(2)删除原本的 webapps ,并把 webapps.dist 重命名为 webapps:

【云原生 | Docker 基础篇】09、Docker 常规安装软件步骤

(3)重新访问即可成功: 

【云原生 | Docker 基础篇】09、Docker 常规安装软件步骤

6.免修改版 tomcat

  • docker pull billygoo/tomcat8-jdk8
  • docker run -d -p 8080:8080 –name t2 billygoo/tomcat8-jdk8

(1)先删除原来的进程:

【云原生 | Docker 基础篇】09、Docker 常规安装软件步骤

(2) 拉取并运行

【云原生 | Docker 基础篇】09、Docker 常规安装软件步骤

(3)访问首页

不用在Tomcat修改文件,直接访问成功,8版本:

【云原生 | Docker 基础篇】09、Docker 常规安装软件步骤

三、安装 mysql

同Tomcat镜像一样的步骤

1.拉取mysql镜像,这次拉取 mysql 5.7 版本

【云原生 | Docker 基础篇】09、Docker 常规安装软件步骤

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

docker run --name some-mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:tag --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci

# 增加utf8编码

 命令出处:Docker Hub

【云原生 | Docker 基础篇】09、Docker 常规安装软件步骤

(1)启动容器实例,添加端口3306映射,并设置密码: 

【云原生 | Docker 基础篇】09、Docker 常规安装软件步骤

(2)进入mysql容器,并连接数据库

【云原生 | Docker 基础篇】09、Docker 常规安装软件步骤

(3)使用基本的sql语句:

【云原生 | Docker 基础篇】09、Docker 常规安装软件步骤

(3)在外部 PC端 连接运行在dokcer上的mysql容器实例服务

我这里使用 Navicat 连接成功:

【云原生 | Docker 基础篇】09、Docker 常规安装软件步骤

可以看到在 docker 创建的数据库和数据:

【云原生 | Docker 基础篇】09、Docker 常规安装软件步骤

(4)试着插入一条中文数据:

【云原生 | Docker 基础篇】09、Docker 常规安装软件步骤

为什么会报错?因为docker上默认字符集编码没有utf8:

SHOW VARIABLES LIKE ‘character%’;

【云原生 | Docker 基础篇】09、Docker 常规安装软件步骤

解决办法:

【云原生 | Docker 基础篇】09、Docker 常规安装软件步骤

docker run --name some-mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:tag --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci

​​​​​​删除容器后,里面的mysql数据如何办?容器实例一删除,你还有什么? 

3.实战篇

​​​​​​​(1)新建mysql容器实例

把前面创建的容器删掉,再新建:

docker run -d -p 3306:3306 --privileged=true -v /home/mysql/log:/var/log/mysql -v /home/mysql/data:/var/lib/mysql -v /home/mysql/conf:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=qwe123456  --name mysql mysql:5.7 --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci

# 挂载三个容器卷

【云原生 | Docker 基础篇】09、Docker 常规安装软件步骤

(2)​​​​​​​新建my.cnf通过容器卷同步给mysql容器实例

在宿主机执行,添加 utf8 编码:

[root@docker01 ~]# cd /home/mysql/conf/
[root@docker01 conf]# vim my.cnf
# 输入下面信息:

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

 ​​​​​​​(3)重新启动mysql容器实例再重新进入并查看字符编码 

【云原生 | Docker 基础篇】09、Docker 常规安装软件步骤

(4)重新插入中文数据:

mysql> create database db01;
Query OK, 1 row affected (0.00 sec)

mysql> use db01;
Database changed
mysql> create table t1(id int,name varchar(20));
Query OK, 0 rows affected (0.01 sec)

mysql> insert into t1 values(1, 'lisi');
Query OK, 1 row affected (0.01 sec)

【云原生 | Docker 基础篇】09、Docker 常规安装软件步骤

【云原生 | Docker 基础篇】09、Docker 常规安装软件步骤

​​​​​​​(4)假如将当前容器实例删除,再重新来一次,之前建的db01实例还有吗?

【云原生 | Docker 基础篇】09、Docker 常规安装软件步骤

数据恢复:

【云原生 | Docker 基础篇】09、Docker 常规安装软件步骤

四、安装 Redis

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

【云原生 | Docker 基础篇】09、Docker 常规安装软件步骤

2.Redis 入门命令

【云原生 | Docker 基础篇】09、Docker 常规安装软件步骤

3.在宿主机创建 redis.conf 文件

#1. 删除前面创建的容器实例
[root@docker01 ~]# docker ps
CONTAINER ID   IMAGE         COMMAND                  CREATED          STATUS          PORTS                                       NAMES
a59b8b2ecdfc   redis:6.0.8   "docker-entrypoint.s…"   10 minutes ago   Up 10 minutes   0.0.0.0:6379->6379/tcp, :::6379->6379/tcp   pedantic_faraday
[root@docker01 ~]# docker rm -f a59b8b2ecdfc
a59b8b2ecdfc

#2. 在宿主机创建目录
[root@docker01 ~]# mkdir -p /usr/local/redis
[root@docker01 ~]# cd /usr/local/redis/

#3. 创建redis.conf,并写入官方默认配置文件内容(下面会发内容连接)
[root@docker01 redis]# vim redis.conf

redis.conf 官方地址:Redis configuration | Redis

也可以看我的这篇Redis文章:Redis 配置文件详解

【云原生 | Docker 基础篇】09、Docker 常规安装软件步骤

4.修改 redis.conf 配置内容

(1)允许外部访问redis,注释掉 # bind 127.0.0.1

【云原生 | Docker 基础篇】09、Docker 常规安装软件步骤

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

【云原生 | Docker 基础篇】09、Docker 常规安装软件步骤

(3)开启redis数据持久化  appendonly yes(这步可以省略)

【云原生 | Docker 基础篇】09、Docker 常规安装软件步骤

(4)设置 redis 密码 去掉注释,requirepass qwe123456

【云原生 | Docker 基础篇】09、Docker 常规安装软件步骤

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

docker run  -p 6379:6379 --name redis01 --privileged=true -v /usr/local/redis/redis.conf:/etc/redis/redis.conf -v /usr/local/redis/data:/data -d redis:6.0.8 redis-server /etc/redis/redis.conf

【云原生 | Docker 基础篇】09、Docker 常规安装软件步骤

6.测试连接 redis

【云原生 | Docker 基础篇】09、Docker 常规安装软件步骤

redis 容器实例默认是没有设置密码的,我们在宿主机设置了密码,所以连接的时候要加入密码才可以进行操作。这也证明我们redis实例启动的是宿主机的redis.conf 文件。如果需要修改 外部的redis.conf 后,需要重启实例:docker restart redis01

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/74603.html

(0)
小半的头像小半

相关推荐

极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!