docker安装Redis、MySQL、部署项目

一、安装docker

当前操作系统是CentOS,其他版本安装参考官网查看(https://docs.docker.com/engine/install)

1.为了防止环境中docker冲突,旧docker残留影响安装,需要先执行卸载。如果确定当前环境没有docker,可以不执行。

yum remove docker \

        docker-client \

        docker-client-latest \

        docker-common \

         docker-latest \

         docker-latest-logrotate \

         docker-logrotate \

         docker-engine

2.设置docker仓库

官方文档提供了相对的说明,安装docker有3种途径。如图所示:

在这里插入图片描述

这三种方式分别是:

  • 设置docker仓库,并且从仓库安装所需内容。
  • 下载RPM安装包,手动更新安装。
  • 为测试和开发环境使用自定义脚本安装。

我们使用最简单,也是官方最推荐的第一种方式来安装docker即可。

yum install -y yum-utils

yum-config-manager --add-repo  https://download.docker.com/linux/centos/docker-ce.repo

两个yum命令执行完成后仓库设置完成,如下图所示

在这里插入图片描述

3.安装docker引擎

yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

4.启动验证docker

systemctl start docker 
docker run hello-world

在这里插入图片描述

出现hello from Docker!则安装成功。

二、docker的常用命令

1.查看本地镜像有哪些
docker images

在这里插入图片描述

2.搜索镜像

镜像可以在docker的仓库里进行搜索,使用docker search命令。例如我们可以搜索mysql的镜像

docker search mysql

在这里插入图片描述

这个命令的返回结果显示:

  • NAME:镜像名称。
  • DESCRIPTION:镜像描述。
  • STARS:镜像星级,越高表示越热,使用人越多。
  • OFFICIAL:是否官方镜像。
  • AUTOMATED:是否支持自动化部署。

如果我们想要了解镜像更多内容,建议到官方仓库docker hub进行搜索。地址是:https://hub.docker.com/

3.将镜像从远程仓库下载到本地

当我们需要用到某个镜像的时候,可以利用pull命令将镜像从远程仓库下载到本地。

docker pull mysql

执行pull命令,后面没有跟随具体的tag标签,默认使用最新版本latest,默认最新版本就是从仓库中看到的。我们也可以这样运行命令,指定下载tag标签的mysql:docker pull mysql:8.1.0

4.删除镜像
docker rmi d1165f221234

这里可以利用docker images查询到的镜像id进行镜像删除。

rmi命令的选项:

l -f:强制删除这个镜像,无论是否正在使用。

如果不加这个选项,当镜像创建了容器之后,就不能删除了,表示正在使用。

除此以外,我们在删除镜像时还有一种嵌套的命令执行可以删除全部,但是慎用,毕竟镜像下载是需要耗费带宽资源的。

docker rmi -f $(docker images -qa)

docker images -qa 返回全部的镜像id作为docker rmi -f 的参数使用

5.运行镜像
docker run

为了测试容器相关命令先拉取下来一个centos的镜像,这个镜像可以创建一个最小化依赖的centos系统。

 docker pull centos:centos7

run命令的常用选项:

  • –name=“name” 启动后赋值一个容器名。容器名字不能重复。
  • -d 后台方式运行容器。如果不加,运行容器之后会进入到这个容器。
  • -i 以交互模式运行容器,一般和-t一起使用
  • -t 给启动的容器分配一个终端客户端,如果不使用-i 不起作用。
  • -P 随机端口。

这时,我们可以通过这些命令来启动centos7这个容器

docker run -it centos:centos7 /bin/bash

在这里插入图片描述

-it:表示以交互模式启动并且创建终端控制器来操作管理容器,

/bin/bash: /bin/bash的作用是表示载入容器后运行bash ,docker中必须要保持一个进程的运行,要不然整个容器启动后就会马上kill itself,这个/bin/bash就表示启动容器后启动bash。

想从容器中退出,可以有两种方式:

 exit # 容器停止退出。

 ctrl+P+Q # 容器不停止退出。
6.ps命令查看容器相关的信息

当容器启动后,我们在宿主机可以通过ps命令查看容器相关的信息。

docker ps

在这里插入图片描述

其中显示内容:

  • container id:容器id,很多操作容器命令都需要用到的参数。
  • image:容器创建使用的镜像。
  • command:容器中在运行的进程或者命令。
  • created:创建时间。
  • status:容器状态。
  • ports:容器的端口映射情况,这里没有用到端口。
  • names:容器的名字,启动没有指定—name选项,会默认使用一个名字。

ps命令中常见的选项如下:

  • -a:显示所有容器,如果不加只显示正在启动运行的容器,停止的不会显示。
  • -l:显示最近的启动创建的容器。
  • -n=[数字]:显示最近n个容器。
  • -q:只显示容器id。经常和-a一起使用,获得当前宿主机所有容器id参数集合。
7.重启,启动,停止容器

我们使用镜像创建容器候,可以重启,启动,停止容器。

  • docker start (容器id or 容器名) 启动容器。
  • docker restart (容器id or 容器名) 重启容器。
  • docker stop (容器id or 容器名) 停止容器。
  • docker kill (容器id or 容器名) 强制停止容器。
8.docker rm删除容器

使用镜像创建的容器,可以使用rm进行删除。

首先使用docker ps -a查看当前宿主机启动所有容器。然后运行命令docker rm 467d954fac58,删除hello-world容器。

在这里插入图片描述

rm的选项有:

-f:强制删除容器,无论是否运行,如果不加,运行的容器无法删除。

我们还可以利用嵌套,将所有容器强制删除。

docker rm -f $(docker ps -aq)

9.docker logs查看对应的日志信息

我们在运行一个容器之后,一般容器内部是会有运行的进程的,否则容器会自动退出。当进程运行时,可以生成一些日志文件,比如tomcat,nginx的相关镜像创建的容器会自动运行这个进程,这时我们在宿主机调用logs命令可以查看对应的日志信息。

首先我们先启动一个tomcat的容器。

拉取镜像

docker pull tomcat:9.0

运行容器

docker run -d --name=tomcat9-demo01 -it tomcat:9.0

这样,一个在后台运行的,利用tomcat:9.0镜像创建的,名称为tomcat9-demo01的容器就启动了,这时可以使用logs命令查看日志显示,这个命令类似tail -f的作用。

docker logs -f -t --tail 10 6750fa7609052c6e9dbc1f6d9bb3b1839bc8535d41a14a4b1189ec8fe74c7f92

在这里插入图片描述

其中选项为:

-f: 跟踪日志输出。

-t: 显示时间戳。

–tail 10:仅列出最新10条容器日志.

6750fa7609052c6e9dbc1f6d9bb3b1839bc8535d41a14a4b1189ec8fe74c7f92:容器id。

不难看出这个显示结果就是tomcat启动日志。

10.exec进入容器

当我们启动了一个容器,在宿主机可以进入容器进行命令的调用

exec

和attach附加命令不同,exec是单独运行一各客户端终端。

docker exec -it 895a77028369 /bin/bash

-i:以交互模式打开终端,通常与-t一起使用。

-t:打开一个伪终端,通常和-i一起使用。

895a77028369:容器id。

/bin/bash:exec打开的终端运行的进程,或者命令。

11.docker cp 复制镜像中的文件

如果我们运行了一个容器,在容器里面创建的一些文件,想要将文件拷贝到宿主机,可以使用cp命令。

例如,首先我们运行一个centos的镜像容器。

docker run -d -it --name=“centos-demo01” centos:centos7 /bin/bash

紧接着我们进入到容器里面。

docker exec -it 0add39d407ba /bin/bash

在容器终端界面,我们配置一个文件并且保存。

touch my-file.txt

退出到宿主机,ctrl+P+Q。调用docker cp命令。

docker cp 0add39d407ba:/my-file.txt /home

0add39d407ba:/my-file.txt:表示容器id中的某个文件绝对路径。

/home:想要把文件拷贝到的宿主机路径。

三、安装Redis

1.拉取镜像

docker pull redis:latest

2.运行镜像

2.1不修改配置文件,直接按默认配置文件运行

docker run -d --name myredis -p 6379:6379 redis # 默认配置

2.2

1.下载一个标准的Redis配置文件进行修改,cd进入到你想保存这个配置文件的位置,wget http://download.redis.io/redis-stable/redis.conf

2.vim redis.conf

修改配置文件,注意路径(推荐下载到本地修改好后在上传到Linux)

bind 127.0.0.1 -::1 改为bind 0.0.0.0外界才能访问

设置密码

找到# requirepass foobared,在下方输入requirepass 你的密码

4.daemonize 设置为 no,这个很重要,如果不是no docker会一直启动失败,原因是docker本身需要后台运行,而这个配置选项也是以守护进程启动,两者会冲突

# 配置文件路径
/home/centos/user/devtools/redis/redis.conf
docker run --name docker-redis \
   -p 7000:6379 \
   -v /home/centos/user/devtools/redis/redis.conf:/etc/redis/redis.conf \
   -v /usr/local/docker/redis/data:/data \
   -d redis redis-server /etc/redis/redis.conf 

使用Another Redis Desktop Manager测试连接,输入ip,port和密码就可连接成功。
在这里插入图片描述

-v /home/centos/user/devtools/redis/redis.conf:/etc/redis/redis.conf:将主机上的Redis配置文件/home/centos/user/devtools/redis/redis.conf 挂载到容器内的/etc/redis/redis.conf路径。这样做的目的是将自定义的Redis配置文件引入容器,以配置Redis服务器的行为。

-v /usr/local/docker/redis/data:/data:将主机上的目录/usr/local/docker/redis/data 挂载到容器内的/data路径。这样做的目的是将Redis数据目录挂载到主机,以便在容器启动和停止时保留Redis数据。

进入到容器内部验证下查看是否生成 redis.conf 和 data持久化文件

在这里插入图片描述

四、安装MySQL

1.拉取镜像

docker pull mysql:latest

2.运行镜像

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

-e MYSQL_ROOT_PASSWORD:用于设置MySQL root用户的密码

3.进入容器 ,输入刚刚运行镜像设置的密码

docker exec -it docker-mysql mysql -uroot -p

mysql -uroot -p:登录到MySQL,root可替换成自己的用户名

4.查看数据库中的表

在这里插入图片描述

5.测试连接

通过navicat进行测试连接,输入主机IP和数据库密码,即可连接成功。

在这里插入图片描述

五、卸载docker

为了防止环境中docker冲突,旧版本docker残留影响安装,需要先执行卸载。

1.删除docker所在的目录

rm -rf /etc/docker

rm -rf /run/docker

rm -rf /var/lib/dockershim

rm -rf /var/lib/docker

2.kill掉docker进程

ps -ef|grep docker

kill -9 [pid]

3.查看已经安装的docker安装包

# 查看已经安装的docker安装包 
yum list installed|grep docker
# 执行yum remove删除匹配到的包
yum remove [复制包名]

4.执行docker version验证,提示没有那个文件或目录就成功了。

六、部署项目

1.利用Maven将项目达成jar包

2.编写Dockerfile文件,用于定义如何构建Docker镜像。

# 使用基础镜像 openjdk:8-jdk-alpine
FROM openjdk:8-jdk-alpine

# 复制本地的所有JAR文件到容器的 /app 目录下
COPY *.jar /app/

# 暴露容器内应用程序监听的端口
EXPOSE 8088

# 定义容器启动命令,在容器启动时,它会运行 java -jar /app/app.jar 命令来启动项目
CMD ["java", "-jar", "/app/app.jar"]

3.构建Docker镜像(注意末尾有个.)

构建一个名为 ylmall-demo01的镜像。

docker build -t ylmall-demo01-app .

4.运行docker容器

docker run -d -p 9000:8088 f7bfb86814fb 

在这里插入图片描述

创建MySQL容器和Redis容器,项目的yml文件里面配置成数据库的url,username,password 和Redis的连接信息host和port

docker run -d --name ylmall-app --link docker-mysql:mysql -p 9000:8088 ylmall-demo01-app

ylmall-app是项目的容器名,docker-mysql是MySQL的容器,ylmall-demo01-app是项目镜像。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

学抓哇的小杨

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值