docker相关

 

一. vagrant 安装centos

出现:Your VM has become “inaccessible.” Unfortunately, this is a critical error with VirtualBox that Vagrant can not cleanly recover from.

          Please open VirtualBox and clear out your inaccessible virtual machines or find a way to fix them.

step1:命令行vagrant ,是否显示

 step2:删除.vagrant文件后重新vagrant up

1.vagrant init centos/7

2.开启 vagrant up

注意:vagrant2.2.5 和 vitualbox6.1版本不兼容

解决: https://blog.csdn.net/weixin_43838639/article/details/106210459

3.连接虚拟机 vagrant ssh

4.常用指令

重启 vagrant reload

关闭 vagrant halt

二. centos安装docker

设置root账户密码

sudo passwd root

输入密码

输入密码

安装docker

yum install docker

修改配置文件

 vi /etc/sysconfig/selinux

 将标红处修改为图中数据

ocker安装完启动失败(code=exited, status=1/FAILURE)错误解决办法

 解决方法,修改docker文件,具体命令:vi  /etc/sysconfig/docker,在--selinux-enabled后面添加=false。如下图所示:

启动docker

systemctl enable docker //开机启动

systemctl start docker //启动docker

干净地卸载docker

1.

[root@localhost vagrant]# yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-selinux docker-engine-selinux docker-engine

2. rm -rf /etc/systemd/system/docker.service.d

3. rm -rf /var/lib/docker

删除docker /var/lib/docker报Device or resource busy问题处理

原因:

在建立容器的时候做了目录的挂载,没有卸载,所以Device or resource busy

解决方法:

查找挂载的目录
cat /proc/mounts | grep "docker" 卸载 umount /var/lib/docker/containers/ rm -rf /var/lib/docker/*

删除docker目录

4. rm -rf /var/run/docker

 

安装yum

https://blog.csdn.net/weixin_42390329/article/details/107733749

本地上传文件到服务器

 备份镜像

首先备份/etc/yum.repos.d/CentOS-Base.repo

mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup

 配置阿里云镜像加速

容器镜像服务ACR->管理控制台->容器镜像服务->镜像中心->镜像加速器

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

三.docker安装mysql等镜像

docker -run报错参考https://www.linuxprobe.com/update-kernel-centos7.html

安装或升级最新版本linux内核

1.检查已安装版本
# uname -sr
2.在 CentOS 7升级内核
# rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
# rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm
仓库启用后,可以使用下面的命令列出可用的内核相关包:
# yum --disablerepo="*" --enablerepo="elrepo-kernel" list available
安装最新稳定内核
# yum --enablerepo=elrepo-kernel install kernel-ml
3.设置 GRUB 默认的内核版本
打开并编辑 /etc/default/grub 并设置 GRUB_DEFAULT=0。意思是 GRUB 初始化页面的第一个内核将作为默认内核。
重新创建内核配置
# grub2-mkconfig -o /boot/grub2/grub.cfg
重启并验证最新的内核已作为默认内核。

将容器设置自启动

 docker update --restart=always 容器id

1.安装mysql

1.1.安装

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=密码 -d mysql:5.7

1.2.登录

docker exec -it mysql  /bin/bash

mysql -u root -p 

(mysql密码)

use mysql;

grant all privileges on *.* to 'root'@'%' identified by 'mysql密码' with grant option;

1.3.问题

MySQL 插入 中文数据乱码解决:

字符编码设置为UTF-8

2.安装redis

2.1.安装

docker pull redis

docker run -p 6379:6379 --name redis -v /data/redis/redis.conf:/etc/redis/redis.conf  -v /data/redis/data:/data -d redis redis-server /etc/redis/redis.conf --appendonly yes

2.2.启动

 docker exec -it redis redis-cli

2.3.卸载镜像

 3.配置nginx

1)docker pull nginx

mkdir nginx 

mkdir nginx/conf (配置文件)

mkdir nginx/logs (日志)

mkdir nginx/www  (保存的网页)

docker run -p 80:80 --name nginx-test  -d nginx(获取配置)

 docker cp d34c08b7c4c3:/etc/nginx/nginx.conf /mydta/nginx/conf (红色标记的是nginx-test的容器Id)

 2)删除test容器,重新配置一个容器,且挂载目录

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

 参考链接:https://blog.csdn.net/weixin_40461281/article/details/92586378

注意,上面链接没有生效,查看下面链接内容

https://www.cnblogs.com/dotnet261010/p/12596185.html

4.安装mongoDB

4.1安装
docker run -d --name mongo -v /usr/local/docker/mongodb/datadb:/data/db -p 27017:27017 --privileged=true mongo:5.0
4.2Docker给MongoDB设置用户密码

  没有用户和密码,MongoDB的客户端NoSQL Manager for MongoDB是无法连接的

  设置用户和密码如下

#admin进入
docker exec -it 容器Id mongo admin
#创建用户和密码
db.createUser({ user: '账户名', pwd: '密码', roles: [ { role: "userAdminAnyDatabase", db: "admin" } ] }); 
#验证一下对不对
db.auth("账户名","密码");
#退出
exit

 5.安装nacos

https://www.cnblogs.com/ameken/articles/14752315.html

 5.1拉取镜像

docker pull nacos/nacos-server

 5.2挂载目录

mkdir -p /mydata/nacos/logs/ #新建logs目录
mkdir -p /mydata/nacos/init.d/
vim /mydata/nacos/init.d/custom.properties #修改配置文件

5.3mysql新建nacos的数据库,并执行脚本

 5.4修改配置文件custom.properties

docker exec -it nacos /bin/bash

cd conf/

vim application.properties
server.contextPath=/nacos
server.servlet.contextPath=/nacos
server.port=8848

spring.datasource.platform=mysql
db.num=1
db.url.0=jdbc:mysql://xx.xx.xx.x:3306/nacos_devtest_prod?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true
db.user=user
db.password=pass

nacos.cmdb.dumpTaskInterval=3600
nacos.cmdb.eventTaskInterval=10
nacos.cmdb.labelTaskInterval=300
nacos.cmdb.loadDataAtStart=false
management.metrics.export.elastic.enabled=false
management.metrics.export.influx.enabled=false
server.tomcat.accesslog.enabled=true
server.tomcat.accesslog.pattern=%h %l %u %t "%r" %s %b %D %{User-Agent}i
nacos.security.ignore.urls=/,/**/*.css,/**/*.js,/**/*.html,/**/*.map,/**/*.svg,/**/*.png,/**/*.ico,/console-fe/public/**,/v1/auth/login,/v1/console/health/**,/v1/cs/**,/v1/ns/**,/v1/cmdb/**,/actuator/**,/v1/console/server/**
nacos.naming.distro.taskDispatchThreadCount=1
nacos.naming.distro.taskDispatchPeriod=200
nacos.naming.distro.batchSyncKeyCount=1000
nacos.naming.distro.initDataRatio=0.9
nacos.naming.distro.syncRetryDelay=5000
nacos.naming.data.warmup=true
nacos.naming.expireInstance=true

5.5启动容器

docker run 
--name nacos -d 
-p 8848:8848 
--privileged=true 
--restart=always 
-e JVM_XMS=256m 
-e JVM_XMX=256m 
-e MODE=standalone 
-e PREFER_HOST_MODE=hostname 
-v /mydata/nacos/logs:/home/nacos/logs 
-v /mydata/nacos/init.d/custom.properties:/home/nacos/init.d/custom.properties 
nacos/nacos-server

 四. 人人开源

vue

1.配置环境

a. 安装node.js

官方下载node.js,node -v检查

配置淘宝镜像:npm config set registry https://registry.npm.taobao.org

a.vscode  npm install

 npm run dev

generater

编译错误换端口

四.分布式组件-springCloud

1.配置注册中心

https://github.com/alibaba/spring-cloud-alibaba/blob/master/spring-cloud-alibaba-examples/nacos-example/nacos-discovery-example/readme-zh.md

2.nacos添加配置

https://blog.csdn.net/LastYHM/article/details/106440107?utm_medium=distribute.wap_relevant.none-task-blog-title-2

注意

 利用命名空间做环境隔离

 配置分组(区分环境)配置集 配置ID 

Spring Cloud GateWay

出现报错expected <block end>, but found BlockMappingStart解决方法

解决:routes下的冒号两边需要有空格

注意:

nacos配置持久化

1.nacos镜像下载好后,创建nacos数据库

 新建数据库,运行上面的sql文件。

2.修改配置文件

docker exec-it nacos /bin/bash
cd conf
/

vim application.properties

如图所示,几个地方改成自己的配置,如果没有从库的话可以把db.url.1 注释掉。

db.url.0=jdbc:mysql://xx.xx.xx.x:3306/nacos_devtest_prod?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true
db.user=user
db.password=pass

 注意黄线部分 db.url.0后参数加上useSSL=true&serverTimezone=GMT&
保存 :wq
3.启动nacos

获取docker中的mysql容器IP(每个容器有自己的IP),记录下来
docker inspect my_mysql | grep IPAddress

启动nacos容器

 docker run --env MODE=standalone --env SPRING_DATASOURCE_PLATFORM=mysql --env MYSQL_SERVICE_HOST=172.17.0.4 --env MYSQL_SERVICE_PORT=3307 --env MYSQL_SERVICE_DB_NAME=nacos-config --env MYSQL_SERVICE_USER=root --env MYSQL_SERVICE_PASSWORD=root --env NACOS_DEBUG=n --name nacos -d -p 8848:8848 nacos/nacos-server

中级

1. sudo docker pull elasticsearch:7.4.2   //存储和检索数据

    sudo mkdir -p /mydata/elasticsearch/config

    sudo mkdir -p /mydata/elasticsearch/data

 echo "http.host: 0.0.0.0" >> /mydata/elasticsearch/config/elasticsearch.yml

 docker run --name elasticsearch -p 9200:9200 -p 9300:9300 
  -e "discovery.type=single-node"
  -e ES_JAVA_OPTS="-Xms64m -Xms128m"
  -v /mydata/elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml
  -v /mydata/elasticsearch/data:/usr/share/elasticsearch/data
  -v /mydata/elasticsearch/plugins:/usr/share/elasticsearch/plugins
   -d elasticsearch:7.4.2
 
chmod -R 777 /mydata/elasticsearch/
使用虚拟机IP访问!!!不是本地IP和127.0.0.1
http://192.168.56.10:9200/

 2.sudo docker pull  kibana:7.4.2      //可视化检索数据

docker run --name kibana -e ELASTICSEARCH_URL=http://10.0.0.11:9200 -p 5601:5601 -d kibana:7.4.2

问题:192.168.56.10:5601无法访问

查看log :docker logs kibana

有这个错误:kibana Unable to revive connection: http://elasticsearch:9200

解决:进入kibana容器  docker  exec -it kibana /bin/bash

   修改配置文件 config/kibana.yml,主机IP修改为本机IP

   

遇到问题:

或者dos命令杀进程如果出现  错误: 无法终止 PID (属于PID4321的子进程)为 1234 的进程。

以管理员身份运行cmd;

netstat -ano|findstr "10000"

taskkill /pid 5596 /f

10000是端口号

5596是pid

配置阿里云OSS服务

问题:解决Cannot resolve com.alibaba.cloud:aliyun-oss-spring-boot-starter:unknown 文件上传报错aliCloudEdasSdk解决

链接:https://blog.csdn.net/weixin_37056888/article/details/108953093?utm_medium=distribute.pc_relevant.none-task-blog-baidujs_title-3&spm=1001.2101.3001.4242

OSS获得阿里云服务端签名——服务端签名后直传

https://www.liangzl.com/get-article-detail-212185.html

 五.linux部署jar包项目

1.安装jdk

1.1 本地下载jdk-8u211-linux-x64.tar.gz

1.2 使用scp指令拷贝文件到服务器

scp ..jar root@xx:服务器上文件路径,解压

1.3  添加java环境变量

vim /etc/profile

export JAVA_HOME=/usr/local/jdk1.8.0_211
export PATH=$JAVA_HOME/bin:$PATH

1.4 使配置文件生效

source /etc/profile

1.5 查看是否安装成功

java -version

2. 部署

2.1在/usr/local 新建app文件夹,新建jasmineWeb文件夹,将jar包复制到改文件夹下。

2.2部署

首先在linux系统下前台运行jar包的和window上一样的
java -jar demo-0.0.1-SNAPSHOT.jar
后台运行进程, nohup java
-jar demo-0.0.1-SNAPSHOT.jar
重定向输出日志的文件名和格式,
这样关闭服务器连接窗口,项目依然还会后台运行
 nohup java -jar demo-0.0.1-SNAPSHOT.jar >msg.log 2>&1 &
查看日志
tail -f nohup.out
查看当前后台运行jar包的进程id号 ps -aux | grep java
关闭进程 kill -9 进程id

我的指令
nohup java -Xms256M -Xmx256M -XX:MetaspaceSize=128M -XX:MaxMetaspaceSize=128M -jar jasmine-admin.jar --spring.profiles.acti
ve=dev >msg.log 2>&1 &

3.docker部署jar包

https://blog.csdn.net/weixin_42054155/article/details/90815393

4.部署服务后无法访问

查看防火墙状态

firewall-cmd --state

停止firewall

systemctl stop firewalld.service

禁止firewall开机启动

systemctl disable firewalld.service 

Centos7开放及查看端口
https://www.cnblogs.com/heqiuyong/p/10460150.htm

- 查看开放了哪些端口

firewall-cmd --list-all

– 开放指定端口

firewall-cmd --zone=public --add-port=1935/tcp --permanent

– 关闭指定端口

firewall-cmd --zone=public --remove-port=5672/tcp --permanent

– 重启防火墙

firewall-cmd --reloadl
 
原文地址:https://www.cnblogs.com/dormant-valcano/p/14144365.html