虚拟机及Docker备忘

1.使用VirtualBox + Vagrant

分别下载安装后,运行:vagrant init centos7 https://mirrors.ustc.edu.cn/centos-cloud/centos/7/vagrant/x86_64/images/CentOS-7.box

后:vagrant up

登录: vagrant ssh

以下解决Vagrant磁盘爆满问题:

我们在vagrant所在的目录(huangjy40/)下创建一个名为backup的目录。

然后进入目录:

D:\MyData\用户\.vagrant.d\boxes\centos7\0\2004.01\virtualbox

找到该目录下的Vagrantfile文件,进行修改。

修改前:

Vagrant.configure("2") do |config|
  config.vm.base_mac = "5254004d77d3"
  config.vm.synced_folder ".", "/vagrant", type: "rsync"
end
修改后:

Vagrant.configure("2") do |config|
  config.vm.base_mac = "5254004d77d3"
  config.vm.synced_folder "./backup", "/vagrant", type: "rsync"
end
修改后,重启vagrant

2.登录后设置虚拟机IP:    查年windows的ipconfig ,找到virtualbox的虚拟网卡网关:如 192.168.56.1   ,则 虚拟机IP可设置为: 192.168.56.10 ,这个IP的设置位置是:c:/users/administrator/VagrantFile中的:config.vm.network "private_network", ip: "192.168.56.10"

修改后,执行: vagrant reload让设置生效。

3.虚拟机网络设置:

如果一直报:Could not resolve host: mirrorlist.centos.org; Unknown error,这一般是网卡没配置好,只要在VagrantFile 里面打开这一行,开启桥接模式:config.vm.network "public_network"

Vagrant (三) - 网络配置 - 简书

4.Docker安装及自启动

安装参考:Docker官方文档

先删除:

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

第3步:sudo yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

第4步,启动Docker :  

sudo systemctl start docker

 第5步:设置Docker自启动:

sudo systemctl enable docker

第6步:镜像加速

阿里云登录 - 欢迎登录阿里云,安全稳定的云计算服务平台

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

5.Docker 安装 Mysql

一:从Docker hub中拉取mysql :  

sudo docker pull mysql:8.0

二:安装

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 \
-v /mydata/mysql/files:/var/lib/mysql-files \
-e MYSQL_ROOT_PASSWORD=root \
-d mysql:8.0

三:启动:docker start mysql     。查看运行中的容器:docker ps   。设置mysql自启动:

sudo docker update mysql --restart=always     查看mysql的日志:docker container logs mysql

四:进入容器:sudo docker exec -it mysql bash

五: 如果MYsql日志报错(加了-v /mydata/mysql/files:/var/lib/mysql-files \应该就不会报错): mysqld: Error on realpath() on ‘/var/lib/mysql-files’ (Error 2 - No such file or directory):  先删除container :sudo docker container rm mysql

再建 一个文件夹: mkdir  mysql-files  ,再输入命令:

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 -v /home/vagrant/mysql-files/:/var/lib/mysql-files  -e MYSQL_ROOT_PASSWORD=1234 -d mysql:8.0

解决mysqld: ‘/var/lib/mysql-files‘ (Error 2..._wslynn的博客-CSDN博客

六:如果远程连接时报错:docker Host is not allowed to connect to this mysql server,则先登录mysql容器:docker exec -it mysql bash

后执行:

use mysql;

update user set host='%' where user='root';

Grant all privileges on root.* to 'root'@'%'; #执行两次,mysql8.0以上版本分配权限不能带密码创建账号了,要先创建账号再设置权限

alter user root identified with mysql_native_password by '1234';

FLUSH PRIVILEGES;

6:安装 redis:

1)docker pull redis

2) 创建配置文件:

 mkdir -p /mydata/redis/conf

touch /mydata/redis/conf/redis.conf

3)运行Docker

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

4)进入redis容器内:

docker exec -it redis redis-cli

5) 修改redis.conf ,增加 appendonly yes  作用是将存储改由内存改为持久化。

6) 查看挂载:docker inspect -f "{{.Mounts}}" 369a1376f78c

7)修改挂载:

先停止docker服务
systemctl stop docker.service(关键,修改之前必须停止docker服务)
后vi /var/lib/docker/containers/container-ID/config.v2.json

查看完整容器ID:docker ps --no-trunc

7.安装nacos:

拉取: sudo docker pull nacos/nacos-server

安装:sudo docker run -d --name nacos --env NACOS_AUTH_ENABLE=true --privileged=true \
-p 8848:8848  -p 9848:9848 -p 9849:9849 \
-e JVM_XMS=256m -e JVM_XMX=512m -e MODE=standalone \
-v /mydata/nacos/logs/:/home/nacos/logs -v /mydata/nacos/conf/:/home/nacos/conf/ \

 --restart=always \
nacos/nacos-server

开关防火墙:

systemctl start firewalld (开启防火墙)
systemctl status firewalld (查看防火墙状态)

systemctl stop firewalld 

开放端口:

1.添加指定需要开放的端口:
firewall-cmd --add-port=8848/tcp --permanent
 2.重载入添加的端口:
firewall-cmd --reload
3.查询指定端口是否开放成功:
firewall-cmd --query-port=8848/tcp 

8.安装Nginx

拉镜像:sudo docker pull nginx

 运行:

sudo mkdir -p /mydata/nginx/conf/
sudo touch /mydata/nginx/conf/nginx.conf
sudo mkdir -p /mydata/nginx/conf.d

#启动容器

sudo docker run -d --name nginx nginx

# 拷贝容器内 Nginx 默认配置文件到本地当前目录下的 conf 目录($PWD 当前全路径)
docker cp nginx:/etc/nginx/nginx.conf /mydata/nginx/conf
docker cp nginx:/etc/nginx/conf.d /mydata/nginx/conf

# 停止容器
 docker container stop nginx
# 删除容器
 docker container rm nginx

#部署容器

docker run -p 80:80 --name nginx -v /mydata/nginx/conf/nginx.conf:/etc/nginx/nginx.conf -v /mydata/nginx/conf.d:/etc/nginx/conf.d -v /mydata/nginx/html:/usr/share/nginx/html -v /mydata/nginx/logs:/var/log/nginx -d nginx

docker update nginx --restart=always

你可能感兴趣的:(linux,ubuntu,运维)