VisualBox进行安装需要cpu开启虚拟化,在开机启动的时候设置主板,CPU configuration,然后点击Intel Vitualization Technology。重启电脑
Linux镜像
普通安装linux虚拟机太麻烦,可以利用vagrant可以帮助我们快速地创建一个虚拟机。装了vitualbox,vagrant可以帮助我们快速创建出一个虚拟机
去https://www.vagrantup.com/ 下载vagrant安装,安装后重启系统。cmd中输入vagrant有版本代表成功了
输入vagrant init centos/7
,即可初始化一个centos7系统。(注意这个命令在哪个目录下执行的,他的Vagrantfile就生成在哪里)
输入vagrant up
启动虚拟机环境
启动后出现default folder:/cygdrive/c/User/… =>/vagrant
vagrant ssh 就会连上虚拟机。可以使用exit退出
下次使用也可以直接vagrant up直接启动,但要确保当前目录在C:/用户/ 文件夹下,他下面有一个Vagrantfile,不过我们也可以配置环境变量。
启动后再次vagrant ssh连上即可
虚拟机IP地址
使用的网络方式是网络地址转换NAT(端口转发),如果其他主机要访问虚拟机,必须由windows端口如3333断发给虚拟机端口如3306。这样每在linux里安一个软件都要进行端口映射,不方便,(也可以在virualBox里挨个设置)。我们想要给虚拟机一个固定的ip地址,windows和虚拟机可以互相ping通。
- 在虚拟机中配置静态IP
添加账户密码
默认只允许ssh登录方式,为了后来操作方便,文件上传等,我们可以配置允许账号密码登录
1 2 3 4 5 6 7
| vim /etc/ssh/sshd_config 修改 PasswordAuthentication yes 重启 service sshd restart 账号root 密码vagrant
|
配置YUM源
1 2 3 4 5 6 7
|
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.163.com/.help/CentOS7-Base-163.repo
yum makecache
|
安装docker
https://docs.docker.com/engine/install/centos/
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
| sudo yum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \ docker-logrotate \ docker-engine sudo yum install -y yum-utils
sudo yum-config-manager \ --add-repo \ https://download.docker.com/linux/centos/docker-ce.repo sudo yum install docker-ce docker-ce-cli containerd.io
sudo systemctl start docker
sudo systemctl enable docker
docker -v sudo docker images
|
配置镜像加速
目前主流 Linux 发行版均已使用 systemd 进行服务管理,这里介绍如何在使用 systemd 的 Linux 发行版中配置镜像加速器。
请首先执行以下命令,查看是否在 docker.service 文件中配置过镜像地址
1
| systemctl cat docker | grep '\-\-registry\-mirror'
|
如果该命令有输出,那么请执行 $ systemctl cat docker 查看 ExecStart= 出现的位置,修改对应的文件内容去掉 –registry-mirror 参数及其值,并按接下来的步骤进行配置
如果以上命令没有任何输出,那么就可以在 /etc/docker/daemon.json 中写入如下内容(如果文件不存在请新建该文件)
1 2 3 4 5 6
| { "registry-mirrors": [ "https://hub-mirror.c.163.com", "https://mirror.baidubce.com" ] }
|
之后重新启动服务
1 2
| sudo systemctl daemon-reload sudo systemctl restart docker
|
检查加速器是否生效
执行 $ docker info,如果从结果中看到了如下内容,说明配置成功
1 2
| Registry Mirrors: https://hub-mirror.c.163.com/
|
安装mysql-docker
1 2 3 4 5 6 7 8 9
| sudo docker pull mysql:5.7
sudo 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
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| docker exec -it mysql bin/bash
exit;
因为有目录映射,所以我们可以直接在镜像外执行 vi /mydata/mysql/conf/my.conf
[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
docker restart mysql
|
安装Redis
如果直接挂载的话docker会以为挂载的是一个目录,所以我们先创建一个文件然后再挂载,在虚拟机中
1 2 3 4 5 6 7 8 9 10 11 12 13
| mkdir -p /mydata/redis/conf touch /mydata/redis/conf/redis.conf
docker pull redis
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
|
默认是不持久化的。在配置文件中输入appendonly yes,就可以aof持久化了。修改完docker restart redis,docker -it redis redis-cli
1 2 3 4 5 6
| vim /mydata/redis/conf/redis.conf
appendonly yes 保存
docker restart redis
|
设置redis容器在docker启动的时候启动
1
| docker update redis --restart=always
|
安装nginx docker
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| docker pull nginx:1.10
docker run -p 80:80 --name nginx -d nginx:1.10
cd /mydata/nginx docker container cp nginx:/etc/nginx . 然后在外部 /mydata/nginx/nginx 有了一堆文件 mv /mydata/nginx/nginx /mydata/nginx/conf
docker stop nginx docker rm nginx
docker run -p 80:80 --name nginx \ -v /mydata/nginx/html:/usr/share/nginx/html \ -v /mydata/nginx/logs:/var/log/nginx \ -v /mydata/nginx/conf:/etc/nginx \ -d nginx:1.10
docker update nginx --restart=always
|
测试
1 2 3 4
| cd /mydata/nginx/html/ vim index.html 随便写写 测试 http://192.168.56.10:80
|
如何通过其他工具链接ssh
修改/etc/ssh/sshd_config
修改 PasswordAuthentication yes
systemctl restart sshd.service 或 service sshd restart
连接192.168.56.10:22端口成功,用户名root,密码vagrant
也可以通过vagrant ssh-config查看ip和端口,此时是127.0.0.1:2222