VirtualBox和Docker安装


1、安装Linux虚拟机

  • 下载&安装VirtualBoxhttps://www.virtualbox.org/,要开启CPU虚拟化

Snipaste_2022-03-03_12-06-40

Snipaste_2022-03-03_12-07-03

  • 下载&安装Vagrant

    • https://app.vagrantup.com/boxes/search Vagrant官方镜像仓库
    • https://www.vagrantup.com/downloads.html Vagrant下载
  • 打开window cmd窗口,运行

    Vagrant init centos/7
    

    即可初始化一个centos7系统

  • 运行

    vagrant up
    

    即可启动虚拟机。系统root用户的密码是vagrant

  • vagrant其他常用命令

    • vagrant ssh
      

      自动使用vagrant用户连接虚拟机。

      • vagrant upload source [destination][name|id]
        

        上传文件

    • https://www.vagrantup.com/docs/cli/init.html Vagrant 命令行

  • 默认虚拟机的ip地址不是固定ip,开发不方便

    • 修改Vagrantfile

      • config.vm.network "private_network", ip: "192.168.56.10"

      • 这里的ip需要在物理机下使用ipconfig命令找到Snipaste_2022-03-03_12-07-13改为这个指定的子网地址

      • 重新使用

        vagrant up
        

        启动机器即可。然后再

        vagrant ssh
        

        连接机器

  • 默认只允许ssh登录方式,为了后来操作方便,文件上传等,我们可以配置允许账号密码登录

    • Vagrant ssh进去系统之后

      vi /etc/ssh/sshd_config
      

      修改PasswordAuthentication yes/no重启服务

      service sshd restart
      
  • 以后可以使用提供的ssh连接工具直接连接

  • 注意:VirtualBox会与包括但不限于如下软件冲突,需要卸载这些软件,然后重启电脑;冲突的软件:红蜘蛛,360,净网大师(有可能)等

  • 修改linux的yum源

    • 备份原yum

      mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
      
    • 使用新yum源

      curl -o /etc/yum.repos.d/CentOS-Base.repohttp://mirrors.163.com/.help/CentOS7-Base-163.repo
      
    • 生成缓存

      yum makecache
      

2、安装docker

Docker安装文档:https://docs.docker.com/install/linux/docker-ce/centos/

  • 卸载系统之前的docker

    sudo yum remove docker \
    docker-client \
    docker-client-latest \
    docker-common \
    docker-latest \
    docker-latest-logrotate \
    docker-logrotate \
    docker-engine
    
  • 2、安装Docker-CE

    • 安装必须的依赖

      sudo yum install -y yum-utils \
      device-mapper-persistent-data \
      lvm2
      
    • 设置docker repo的yum位置

      sudo yum-config-manager \
      --add-repo \
      https://download.docker.com/linux/centos/docker-ce.repo
      
    • 安装 docker, 以及 docker-cli

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

      sudo systemctl start docker
      
    • 设置 docker 开机自启

      sudo systemctl enable docker
      
    • 测试 docker 常用命令, 注意切换到 root 用户下

      https://docs.docker.com/engine/reference/commandline/docker/

    • 配置 docker 镜像加速

      阿里云,容器镜像服务针对 Docker 客户端版本大于 1.10.0 的用户,您可以通过修改 daemon 配置文件

      /etc/docker/daemon.json 
      

      来使用加速器

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

docker 安装 mysql

  • 下载镜像文件

    • 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 端口映射到主机的 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 用户的密码

    • 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
      [mysqld]
      skip-name-resolve
      解释:
      skip-name-resolve: 跳过域名解析

  • 通过容器的 mysql 命令行工具连接

    docker exec -it mysql mysql -uroot -proot
    
  • 设置 root 远程访问

    grant all privileges on *.* to 'root'@'%' identified by 'root' with grant option;
    flush privileges;
    
  • 进入容器文件系统

    docker exec -it mysql /bin/bash
    

docker 安装 redis

  • 下载镜像文件

    docker pull 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
    

    持久化 在redis.conf中添加:

    appendonly yes
    

    redis 自描述文件:

    https://raw.githubusercontent.com/antirez/redis/4.0/redis.conf

  • 使用 redis 镜像执行 redis-cli 命令连接

    docker exec -it redis redis-cli