1.初始化centos系统
vagrant init centos/7
2.centos系统开机
vagrant up
3.使用vagrant自动连接进入centos系统,root的密码默认为vagrant
vagrant ssh
4.新建的centos系统的默认使用的是网络地址转换和端口转发的方式,对开发不方便。所以给虚拟机设置一个固定的IP地址用来后续的开发。
5.编辑Vagrantfile文件。其中的ip地址为virtual同一网段下的ip地址即可。
config.vm.network "private_network", ip: "192.168.56.10"
6.以上的ip地址修改完毕后,可以测试一下,本地系统和虚拟系统之间是否能ping通
网络地址转换(NAT):虚拟主机需要借助虚拟NAT设备和虚拟DHCP服务器,使得虚拟机可以联网,并且与物理机共用一个IP地址。
端口转发:windows系统这一个主机的端口号和虚拟主机的端口号存在对应关系
docker hub 镜像仓库:官方存储各种软件镜像的仓库
1.使用root用户卸载过去安装的docker
sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
2.安装docker依赖包并设置本地存储库(按照官方给的地址,设置的是国外的存储库,下载比较慢,后续会设置为阿里的镜像加速器)
sudo yum install -y yum-utils
sudo yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
3.安装docker引擎(社区版)、docker社区版引擎对应的命令行、docker守护进程、规定多个docker容器的启动顺序
sudo yum install docker-ce docker-ce-cli containerd.io docker-compose-plugin
4.启动docker
sudo systemctl start docker
5.验证docker是否可用(会下载一个测试的hello world镜像并运行)
sudo docker run hello-world
6.设置docker的开机自启动
sudo systemctl enable docker
7.配置阿里云的镜像加速服务,登录阿里云的账号,找到镜像加速器
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://75itdq1t.mirror.aliyuncs.com"]
}
EOF
#重新加载某个服务的配置文件
sudo systemctl daemon-reload
sudo systemctl restart docker
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映射到docker容器的3306
-v:文件挂载,操作主机下的/mydata/mysql/conf文件夹等同于操作docker中内置的/etc/mysql文件夹
-e:初始化root用户的密码为root
-d:后台运行
mysql:5.7:指定创建该实例所用的镜像名称
# 加入以下内容
vim /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
# 修改配置文件之后,重启容器
docker restart mysql
docker pull redis
#创建redis.conf文件,避免文件挂载的时候将其视为一个目录
mkdir -p /mydata/redis/conf
touch /mydata/redis/conf/redis.conf
#创建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
#由于redis默认没有开启持久化,编辑/mydata/redis/conf/redis.conf,加入appendonly yes即可,然后重启redis
vim /mydata/redis/redis.conf
appendonly yes
#重启redis
docker restart redis
#设置docker启动的时候也启动redis
docker update redis --restart=always