使用vagrant初始化一台centos环境,并使用docker安装redis/mysql

环境搭建

//这篇文章是跟着某硅谷自己鼓捣电商大项目是做笔记记录下来的一点东西。

1.虚拟机环境搭建

  • 虚拟机容易使用的是virtualbox

  • 虚拟机管理使用Vagrant

    • 在cmd下使用vagrant init centos/7命令,初始化一个centos/7环境

    • 再使用vagrant up命令,启动centos/7

    • vagrant ssh 连接虚拟机

  • vagrant up 启动 cmd文件夹下有Vargantfile文件

  • 注意 vagrant创建账户的密码是vargrant

2.虚拟机网络配置

  • 在vagrantfile文件中,进行如下的配置

    config.vm.network "private_network",ip:"192.168.x.x"  
    # 这里的地址以主机ipconfig给的virtualbox虚拟网卡的ip段为准
    # linux是 ip addr
  • 配置完成之后直接执行vagrant reolad命令 重启虚拟机

  • 之后两边互相能ping通即可。

3.安装docker

  • docker基于镜像,可以秒级启动各种容器 ,每一个容器都是一个完整的运行环境,容器之间相互隔离。

  • 镜像市场 docker hub,官网有安装文件:https://docs.docker.com/engine/install/centos/

  • 卸载旧版本

    旧版本的 Docker 被称为dockerdocker-engine. 如果安装了这些,请卸载它们以及相关的依赖项。

    $ sudo yum remove docker \
                    docker-client \
                    docker-client-latest \
                    docker-common \
                    docker-latest \
                    docker-latest-logrotate \
                    docker-logrotate \
                    docker-engine

 

  • 设置存储库

    安装yum-utils包(提供yum-config-manager 实用程序)并设置稳定的存储库。

$ sudo yum install -y yum-utils

$ sudo yum-config-manager \
  --add-repo \
  https://download.docker.com/linux/centos/docker-ce.repo
  • 安装 Docker 引擎

安装最新版本的 Docker Engine 和 containerd,或者进入下一步安装特定版本:

$ sudo yum install docker-ce docker-ce-cli containerd.io
  • 启动 Docker。

$ sudo systemctl start docker

可以通过docker -v看docker是否启动,或 sudo docker images,检查镜像

  • 设置开机自启

    sudo systemctl enable docker
  • 设置镜像加速,推荐阿里云的https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors

    sudo mkdir -p /etc/docker
    sudo tee /etc/docker/daemon.json <<-'EOF'
    {
    "registry-mirrors": ["https://leljmgci.mirror.aliyuncs.com"]
    }
    EOF
    sudo systemctl daemon-reload
    sudo systemctl restart docker

     

     

docker 安装mysql

  • sudo docker pull mysql:5.7

  • 创建实例并启动

  • # 这其实是一条很细的创建命令了,配置文件,日志文件等都是不必须的
    docker run -p 3306:3306 --name mysql \
    -v /mydata/mysql/log:/var/log/mysql \
    -v /mydata/mysql/data:/var/lib/mysql \
    -v /mydata/mysql/conf:/etc/mysql \
    -e MYSQL_ROOT_PASSWORD=root \
    -d mysql:5.7

    参数说明

    -p 3306:3306:将容器的 3306 端口映射到主机(linux)的 3306 端口

    -v /mydata/mysql/conf:/etc/mysql:将配置文件夹挂载到主机

    -v /mydata/mysql/log:/var/log/mysql:将日志文件夹挂载到主机

    -v /mydata/mysql/data:/var/lib/mysql/:将配置文件夹挂载到主机

    -e MYSQL_ROOT_PASSWORD=root:初始化 root 用户的密码

  • docker ps 查看容器

  • docker exec -it mysql /bin/bash 进入容器 exit 退出

mysql配置

vi /mydata/mysql/conf/my.cnf

[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
[mysqld]
init_connect='SET collation_connection = utf8_unicode_ci' init_connect='SET NAMES utf8' character-set-server=utf8
collation-server=utf8_unicode_ci
skip-character-set-client-handshake
skip-name-resolve

# 注意:解决 MySQL 连接慢的问题
# 在配置文件中加入如下,并重启 mysql(docker restart mysql)
[mysqld]
skip-name-resolve
# 解释:
skip-name-resolve:跳过域名解析

docker 安装redis

# 先创建文件,否则挂载时会出问题,会把文件读成目录
mkdir -p /mydata/redis/conf
touch /mydata/redis/conf/redis.conf

docker run -p 6379:6379 --name redis -v /mydata/redis/data:/data \
-v /mydata/redis/conf/redis.conf:/etc/redis/redis.conf \
-d redis redis-server /etc/redis/redis.conf
  • 连接客户端

docker exec -it redis redis-cli
  • 持久化(AOF)

    cd /mydata/redis/conf
    vi redis.conf
    appendonly yes

     

  •  
posted @ 2022-05-21 20:45  局点6828  阅读(69)  评论(0)    收藏  举报