继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

【学习打卡】第14天 服务器基础环境搭建

userqiao
关注TA
已关注
手记 35
粉丝 1
获赞 3

课程名称: SpringBoot+Vue3 项目实战,打造企业级在线办公系统
课程章节: 第10章 发布Emos项目
主讲老师: 神思者

课程内容

emos项目的核心功能都已经做完了。虽然在本地电脑上运行前后端项目没有问题,但是毕竟本地电脑没有外网静态IP,所以外网用户无法访问到本地主机上的项目。因此需要利用云主机发布项目,这样外网用户就都能访问到项目了。详细可以查看思维导图:
图片描述

安装Docker环境

Docker的安装

docker安装可以采用Linux自带的yum模块进行一键式安装。

yum install docker -y

管理Docker程序的命令也非常简单,如下:

service docker start
service docker stop
service docker restart

配置Docker的加速器

因为Docker在线安装镜像是从国外的DockerHub网站下载文件,所以速度超级慢,所以我们要给Docker设置加速器。

打开/etc/docker/daemon.json文件,然后设置成如下内容:

{
    "registry-mirrors": ["https://mirror.ccs.tencentyun.com"]
}

重新启动Docker服务,加速器才能生效。

service docker restart

基础应用安装

安装好了Docker环境,在部署程序之前,我们首先要把MySQL、MongoDB、Redis和RabbitMQ,都部署在Docker容器中。为了分别管理起来更方便,每个程序部署到一个单独的容器中。

mysql

docker pull mysql:8.0.23

创建容器的时候,我们需要把MySQL容器内的数据目录映射到CentOS系统上面。如果MySQL容器挂掉了,数据库文件不会丢失。我们新建一个MySQL容器,挂载上这个数据目录就又能正常使用MySQL了。

以前我说过Docker会给每个容器创建一个虚拟的网卡,然后分配一个Docker内网IP地址。假设A容器部署了MySQL,B容器中的Java程序想要访问A容器的MySQL,JDBC路径就要写A容器的Docker内网IP地址,略显麻烦。
这次部署项目,我打算把容器设置成host模式,就是不让Docker为容器虚拟网卡,Docker容器直接使用CentOS的网卡。A容器和B容器中使用的都是CentOS的网卡,所以A容器中localhost代表CentOS,B容器中的localhost也代表CentOS,两个容器相互访问,URL地址写localhost即可。例如B容器中JDBC路径的host写localhost,就能访问到A容器里面的MySQL。这样我们部署的若干容器,相互访问就简单多了。

MySQL容器我分配内存空间是500M,如果将来觉得不够用,删除容器,再创建新容器的时候分配更大的内存。而且只要挂载上那些文件目录,MySQL的数据就不会丢失。

docker run -it -d --name mysql --net=host \
-m 500m -v /root/mysql/data:/var/lib/mysql \
-v /root/mysql/config:/etc/mysql/conf.d  \
-e MYSQL_ROOT_PASSWORD=abc123456 \
-e TZ=Asia/Shanghai mysql:8.0.23 \
--lower_case_table_names=1

安装MongoDB

执行命令,下载特定版本的MongoDB镜像。最新版本的MongoDB连接的时候登录认证兼容性不好,所以我们不必追求最新版本的MongoDB,我们只追求运行稳定,所以通用的老版本就很适合我们。

docker pull mongo:4.4.7

创建/root/mongo/mongod.conf文件,然后在文件中添加如下内容:

net:
   port: 27017
   bindIp: "0.0.0.0"

storage:
   dbPath: "/data/db"

security:
   authorization: enabled

创建容器,为MongoDB分配500M内存。

docker run -it -d --name mongo --net=host \
-v /root/mongo:/etc/mongo \
-v /root/mongo/data/db:/data/db \
-m 500m \
-e MONGO_INITDB_ROOT_USERNAME=admin \
-e MONGO_INITDB_ROOT_PASSWORD=abc123456 \
-e TZ=Asia/Shanghai \
mongo:4.4.7 --config /etc/mongo/mongod.conf

安装Redis程序

执行命令,在线安装Redis镜像,这里我们也是安装特定版本的Redis。

docker pull redis:6.0.10

创建/root/redis/conf/redis.conf文件,然后添加如下内容:

bind 0.0.0.0
protected-mode yes
port 6379
tcp-backlog 511
timeout 0
tcp-keepalive 0
loglevel notice
logfile ""
databases 4
save 900 1
save 300 10
save 60 10000
stop-writes-on-bgsave-error yes
rdbcompression yes
rdbchecksum yes
dbfilename dump.rdb
dir ./
requirepass abc123456

执行命令,创建Redis容器,分配300M内存。

docker run -it -d --name redis -m 300m  --net=host \
-e TZ=Asia/Shanghai \
-v /root/redis/conf:/usr/local/etc/redis redis:6.0.10 \
redis-server /usr/local/etc/redis/redis.conf

安装RabbitMQ

执行命令,在线安装RabbitMQ镜像。虽然咱们的项目暂时没有用上RabbitMQ,但是在手册中我会更新消息模块的代码,那时候就会用上RabbitMQ了,所以咱们先把RabbitMQ部署好,以后要用到。

docker pull rabbitmq:3.8.9

执行命令,创建RabbitMQ容器,分配300M内存。

docker run -it -d --name mq -m 300m --net=host -e TZ=Asia/Shanghai rabbitmq:3.8.9

课程收获

  • 学习了Docker的安装方式

    一、手动安装
    1、安装需要的软件包yum-util 提供yum-config-mamager功能,另外两个是devicemapper驱动依赖的
    sudo yum install -y yum-utils
    2、设置yum源为阿里云(速度更快)
    yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
    3、安装docker(docker-ce社区版免费)
    yum -y install docker-ce docker-ce-cli containerd.io
    4、安装后查看docker版本
    docker -v
    5、设置ustc镜像站点(指定注册中心地址)
    安装完之后这个文件是空的
    vim /etc/docker/daemon.json
    {
    "registry-mirrors":["https://docker.mirrors.ustc.edu.cn"]
    }
    二、脚本安装
    1、安装发布版本
    curl -fsSL https://get.docker.com -o get-docker.sh -o test-docker.sh
    sh get-docker.sh
    三、yum安装(最省心)
    yum install docker -y
    
  • 学会了Docker安装应用

创建容器常用的参数说明:
创建容器命令:docker run
 -i:表示运行容器
 -t:表示容器启动后会进入其命令行。加入这两个参数后,容器创建就能登录进去。即分配一个伪终端。
 --name :为创建的容器命名。
 -v:表示目录映射关系(前者是宿主机目录,后者是映射到宿主机上的目录),可以使用多个-v做多个目录或文件映射。注意:最好做目录映射,在宿主机上做修改,然后共享到容器上。
 -d:在run后面加上-d参数,则会创建一个守护式容器在后台运行(这样创建容器后不会自动登录容器,如果只加-i -t两个参数,创建后就会自动进去容器)。
 -p:表示端口映射,前者是宿主机端口,后者是容器内的映射端口。可以使用多个-p做多个端口映射

课程截图

image-20220817090136038

image-20220817090158721

image-20220817090232236

打开App,阅读手记
1人推荐
发表评论
随时随地看视频慕课网APP