VirtualBox和Docker安装
1、安装Linux虚拟机
- 下载&安装VirtualBoxhttps://www.virtualbox.org/,要开启CPU虚拟化


-
下载&安装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命令找到
改为这个指定的子网地址 -
重新使用
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 yesredis 自描述文件:
https://raw.githubusercontent.com/antirez/redis/4.0/redis.conf
-
使用 redis 镜像执行 redis-cli 命令连接
docker exec -it redis redis-cli