Docker基础篇之Docker常规软件安装

作者 : admin 本文共1833个字,预计阅读时间需要5分钟 发布时间: 2024-06-9 共4人阅读

文章目录

    • 1. 总体步骤
    • 2. 安装tomcat
    • 3. 安装Mysql
    • 4. 安装Redis

1. 总体步骤

安装软件的总体步骤如下所示:

  • 搜索镜像
  • 拉取镜像
  • 查看镜像
  • 启动镜像
  • 停止容器
  • 移除容器

2. 安装tomcat

  • docker hub上查找tomcat镜像

Docker基础篇之Docker常规软件安装插图
或者使用一下命令查找:

docker search tomcat

Docker基础篇之Docker常规软件安装插图(1)

  • 拉取tomcat镜像
docker pull tomcat

Docker基础篇之Docker常规软件安装插图(2)

然后使用docker images查看下载好的镜像;

Docker基础篇之Docker常规软件安装插图(3)

  • 使用tomcat镜像创建容器实例
docker run -it -p 8080:8080 tomcat

-p:小写:主机端口:docker容器端口
-P:大写:随机分配端口
i:交互
t:终端
d:后台

Docker基础篇之Docker常规软件安装插图(4)

  • 访问tomcat首页

Docker基础篇之Docker常规软件安装插图(5)

发现访问状态为404,这是因为新版本的tomcat做了一些更新,我需要修改容器的一些配置

进入容器

docker exec -it d5349c9071c3 /bin/bash
ls -l

Docker基础篇之Docker常规软件安装插图(6)

Tomcat的主页面是放在webapps下面的

Docker基础篇之Docker常规软件安装插图(7)

可以发现webapps下面什么都没有,其实真正的内容在webapps.dist中

我们删除掉webapps,并将webapp.dist修改为webapps

rm -r webapps
mv webapps.dist webapps

Docker基础篇之Docker常规软件安装插图(8)
再次访问Tomcat首页:

Docker基础篇之Docker常规软件安装插图(9)

  • 停止并删除
docker stop d5349c9071c3
docker rm d5349c9071c3b5c004aa342d4e0ace2086c7461177d89cb67c569e9b97f268bc

3. 安装Mysql

  • 拉取mysql镜像
docker pull mysql
docker images

Docker基础篇之Docker常规软件安装插图(10)

  • 使用mysql镜像创建容器
docker run -p 3308:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql

Docker基础篇之Docker常规软件安装插图(11)
Docker基础篇之Docker常规软件安装插图(12)

然后我们进入容器实例里面:

docker exec -it 3393815aff78 /bin/bash
mysql -uroot -p

Docker基础篇之Docker常规软件安装插图(13)

现在我们使用navicat连接mysql:
Docker基础篇之Docker常规软件安装插图(14)
现在创建一个库和表:
Docker基础篇之Docker常规软件安装插图(15)
然后我插入数据:
Docker基础篇之Docker常规软件安装插图(16)
以上docker就成功部署了mysql服务,现在思考一个问题,如果我们一个mysql容器里面装的数据很重要,但是有人给这个容器给删除了怎么办?这种情况在线上是很严重的,为了保证容器被删除mysql数据不丢失,我们需要数据卷挂载技术。

重新新建mysql实例

docker run -d -p 3308:3306 \
--privileged=true \
-v /Users/jackchai/Desktop/lottory_docker/learndocker/mysql/log:/var/log/mysql \
-v /Users/jackchai/Desktop/lottory_docker/learndocker/mysql/data:/var/lib/mysql \
-v /Users/jackchai/Desktop/lottory_docker/learndocker/mysql/conf:/etc/mysql/conf.d \
-e MYSQL_ROOT_PASSWORD=123456 \
--name mysql \
mysql

Docker基础篇之Docker常规软件安装插图(17)
然后我们新建My.cnf,并通过容器卷同步给mysql容器实例(解决中文乱码问题):
在conf目录下创建my.cnf文件:

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

然后重启一下mysql。

docker restart mysql

4. 安装Redis

  • 拉取镜像

Docker基础篇之Docker常规软件安装插图(18)

  • 启动容器
docker run -d -p 6379:6379 redis

Docker基础篇之Docker常规软件安装插图(19)
然后我们进入容器内部:

docker exec -it 6f3fc0e73503 /bin/bash

Docker基础篇之Docker常规软件安装插图(20)

和mysql一样,一旦容器删除数据就会丢失,所以我们同样需要挂载数据卷

#将redis的配置文件拷贝到本地(配置自行修改)
cp /myredis/redis.conf /app/redis/
#创建redis容器
docker run -d -p 6379:6379 --privileged=true \
-v /app/redis/redis.conf:/etc/redis/redis.conf \
-v /app/redis/data:/data \
-d redis redis-server /etc/redis/redis.conf
#连接启动redis-cli

本站无任何商业行为
个人在线分享 » Docker基础篇之Docker常规软件安装
E-->