环境部署搭建

一、 服务器

1.购买一个服务器,使用密钥登录
在这里插入图片描述
2.ssh远程连接
ssh连接的工具很多,这里推荐用的是xshell
在这里插入图片描述
在这里插入图片描述
登录成功,开始配置环境。

二、docker环境部署

1、下载docker

yum install docker

在这里插入图片描述

2、启动docker服务

service docker start
chkconfig docker on

在这里插入图片描述

3、测试是否安装成功

docker version

在这里插入图片描述

4、设置国内镜像

vi  /etc/docker/daemon.json

#添加后
{
    "registry-mirrors": ["https://mirror.ccs.tencentyun.com"],
    "live-restore": true
}

5、重新启动docker服务

systemctl daemon-reload
service docker restart

6、 检查是否生效

docker info

在这里插入图片描述

三、Docker Compose的安装

1、安装中间件
下载地址:
https://github.com/docker/compose/releases/download/1.28.6/docker-compose-Linux-x86_64
2、导入文件

cd /usr/local/bin #打开文件夹
rz #选择本地文件到服务器

在这里插入图片描述在这里插入图片描述

3、将可执行权限应用于二进制文件

sudo chmod +x /usr/bin/docker/docker-compose

4、测试是否安装成功

docker-compose --version

在这里插入图片描述

四、docker常用命令

拉取docker镜像
docker pull image_name

查看宿主机上的镜像,Docker镜像保存在/var/lib/docker目录下:
docker images

删除镜像
docker rmi docker.io/tomcat:7.0.77-jre7 
或者 docker rmi b39c68b7af30

查看当前有哪些容器正在运行
docker ps

查看所有容器
docker ps -a

启动、停止、重启容器命令:
docker start container_name/container_id docker stop container_name/container_id docker restart container_name/container_id

后台启动一个容器后,如果想进入到这个容器,可以使用attach命令:
docker attach container_name/container_id

删除容器的命令:
docker rm container_name/container_id

删除所有停止的容器:
docker rm $(docker ps -a -q)

查看当前系统Docker信息
docker info

从Docker hub上下载某个镜像:
docker pull centos:latest docker pull centos:latest

查找Docker Hub上的nginx镜像
docker search nginx

五、MySQL部署

1、创建挂载目录

#创建挂载目录
mkdir -p /data/mysql/data;
mkdir -p /data/mysql/conf;

在这里插入图片描述

2、创建yml文件

vim /data/mysql/docker-compose.yml
#填入配置
version: '3'
services:
  mysql:
    image: mysql:5.7 #mysql版本
    container_name: mysql
    volumes:
      - /data/mysql/data:/var/lib/mysql
      - /data/mysql/conf/my.cnf:/etc/mysql/mysql.conf.d/mysqld.cnf
    restart: always
    ports:
      - 3306:3306
    environment:
      MYSQL_ROOT_PASSWORD: 123456 #root用户密码
      TZ: Asia/Shanghai
    command: --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci

3、创建配置文件
vim /data/mysql/conf/my.cnf

[mysqld]
default-storage-engine=INNODB  # 创建新表时将使用的默认存储引擎
character-set-server=utf8mb4      # 设置mysql服务端默认字符集
pid-file        = /var/run/mysqld/mysqld.pid  # pid文件所在目录
socket          = /var/run/mysqld/mysqld.sock # 用于本地连接的socket套接字
datadir         = /var/lib/mysql              # 数据文件存放的目录
symbolic-links=0
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION # 定义mysql应该支持的sql语法,数据校验等!

# 允许最大连接数
max_connections=200


# 同一局域网内注意要唯一
server-id=3306
# 开启二进制日志功能 & 日志位置存放位置`/var/lib/mysql`
#log-bin=mysql-bin
log-bin=/var/lib/mysql/mysql-bin
# binlog格式
# 1. STATEMENT:基于SQL语句的模式,binlog 数据量小,但是某些语句和函数在复制过程可能导致数据不一致甚至出错;
# 2. MIXED:混合模式,根据语句来选用是 STATEMENT 还是 ROW 模式;
# 3. ROW:基于行的模式,记录的是行的完整变化。安全,但 binlog 会比其他两种模式大很多;
binlog_format=ROW
# FULL:binlog记录每一行的完整变更 MINIMAL:只记录影响后的行
binlog_row_image=FULL
# 日志文件大小
max_binlog_size=100M
# 定义清除过期日志的时间(这里设置为7)
expire_logs_days=7

# ================= ↑↑↑ mysql主从同步配置end ↑↑↑ =================

[mysql]
default-character-set=utf8mb4

[client]
default-character-set=utf8mb4  # 设置mysql客户端默认字符集

4、启动容器

注意:到对应目录文件下,记得服务器开防火墙

cd /data/mysql
docker-compose up -d

在这里插入图片描述

Error:3306端口号被占用

#错误信息

[root@VM-16-2-centos mysql]# docker-compose up -d
Starting mysql ... 
Starting mysql ... error

ERROR: for mysql  Cannot start service mysql: driver failed programming external connectivity on endpoint mysql (719971d0ba14ce99914053128e9a8e92a268346e7d86eaa07ebcd9b005ea86a1): Error starting userland proxy: listen tcp 0.0.0.0:3306: bind: address already in use

ERROR: for mysql  Cannot start service mysql: driver failed programming external connectivity on endpoint mysql (719971d0ba14ce99914053128e9a8e92a268346e7d86eaa07ebcd9b005ea86a1): Error starting userland proxy: listen tcp 0.0.0.0:3306: bind: address already in use
ERROR: Encountered errors while bringing up the project.

# 尝试解决手段,杀死占用对应端口进程
[root@VM-16-2-centos mysql]#  sudo netstat -apn | grep 3306
tcp6       0      0 :::3306                 :::*                    LISTEN      17082/mysqld        
unix  2      [ ]         DGRAM                    13306    566/dbus-daemon      
[root@VM-16-2-centos mysql]# tcp        0      0 127.0.0.1:3306          0.0.0.0:*               LISTEN      9727/mysqld  
-bash: tcp: command not found
[root@VM-16-2-centos mysql]# sudo netstat -apn | grep 3306
tcp6       0      0 :::3306                 :::*                    LISTEN      17082/mysqld        
unix  2      [ ]         DGRAM                    13306    566/dbus-daemon      
[root@VM-16-2-centos mysql]# sudo kill -9 17082
[root@VM-16-2-centos mysql]# sudo netstat -apn | grep 3306
tcp6       0      0 :::3306                 :::*                    LISTEN      6369/mysqld         
unix  2      [ ]         DGRAM                    13306    566/dbus-daemon      

# 彻底解决手段
#1、查看mysql的进程PID:  sudo lsof -i :3306
[root@VM-16-2-centos ~]# sudo lsof -i :3306
COMMAND  PID  USER   FD   TYPE  DEVICE SIZE/OFF NODE NAME
mysqld  6369 mysql   17u  IPv6 3392314      0t0  TCP *:mysql (LISTEN)

#2、 杀死进程PID:  sudo kill 6369
[root@VM-16-2-centos ~]# sudo kill 6369

#docker-compose加载mysql
[root@VM-16-2-centos mysql]# docker-compose up -d
Starting mysql ... done
[root@VM-16-2-centos mysql]# docker-compose up -d
mysql is up-to-date
[root@VM-16-2-centos mysql]# docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                               NAMES
275834062b57        mysql:5.7           "docker-entrypoint..."   20 minutes ago      Up About a minute   0.0.0.0:3306->3306/tcp, 33060/tcp   mysql

5、navicate测试链接成功

注意:开启防火墙,3306
在这里插入图片描述

创建数据库,编辑连接,只看自己需要的数据库。
在这里插入图片描述

在这里插入图片描述

六、Redis部署

1、创建挂载目录

#创建挂载目录
mkdir -p /data/redis

2、创建yml文件

vim /data/redis/docker-compose.yml
#填入配置
version: '3'
services:
  redis:
    image: redis:6.2.6
    container_name: redis
    restart: always
    ports:
      - 6379:6379
    volumes:
      - /data/redis/redis.conf:/etc/redis/redis.conf
      - /data/redis/data:/data
      - /data/redis/logs:/logs
    command: ["redis-server","/etc/redis/redis.conf"]

3、创建挂载的配置文件

vim /data/redis/redis.conf

protected-mode no
port 6379
timeout 0
#rdb配置
save 900 1
save 300 10
save 60 10000
rdbcompression yes
dbfilename dump.rdb
dir /data
appendonly yes
appendfsync everysec
#设置你的redis密码
requirepass 123456

protected-mode no不加,服务连不上redis的
4、启动容器

cd /data/redis
docker-compose up -d
#如果需要强制重新构建
docker-compose up --force-recreate -d

防火墙开端口号 6379

在这里插入图片描述

5、AnotherRedis测试连接

注意:开启redis服务

在这里插入图片描述
测试成功
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值