在阿里云平台搜索 “容器镜像服务”
选择“CentOS”
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://03eun7m7.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
sudo yum install -y yum-utils \
device-mapper-persistent-data \
lvm2
sudo yum-config-manager \
--add-repo \
http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
sudo yum makecache fast
sudo yum install -y docker-ce docker-ce-cli containerd.io
##如果你的虚拟机设置有问题的话,执行上边这个命令会有error错误
##请执行下边这行代码
yum install --allowerasing docker-ce
##验证docker是否安装成功
docker -v 查看docker版本
sudo systemctl start docker
sudo systemctl enable docker
sudo docker run hello-world
Docker相关:
启动docker: systemctl start docker
查看docker状态: systemctl status docker
重启docker:systemctl restart docker
关闭docker:systemctl stop docker
开机自启docker: systemctl enable docker
镜像相关:
查看docker镜像:
docker images
构建镜像:
docker build -t 服务名xxx .
启动镜像:
docker run -d -p 8085:8085 --name 服务名xxx 镜像名xxx
删除指定docker镜像:
docker rmi c20987f18b13(镜像id)
容器相关:
查看docker中的容器:docker ps -a
第一次启动容器:
docker run -d -p 8084:8084 --name 服务名xxx 6b3ceba0a4c9(容器id)/容器名
第一次启动容器(设置自启):
docker run -d -p 8084:8084 --restart=always --name 服务名xxx 6b3ceba0a4c9(容器id)/容器名
启动docker容器:docker start 6b3ceba0a4c9(容器id)/容器名
设置容器自启:docker update --restart=always 容器id
删除容器:docker container rm ck10_mariadb(容器id)
mkdir /usr/local/java
cd /usr/local/java/
下载jdk1.8版本
wget --no-check-certificate --no-cookies --header "Cookie: oraclelicense=accept-securebackup-cookie" http://download.oracle.com/otn-pub/java/jdk/8u131-b11/d54c1d3a095b4ff2b6607d096fa80163/jdk-8u131-linux-x64.rpm
chmod +x jdk-8u131-linux-x64.rpm
rpm -ivh jdk-8u131-linux-x64.rpm
如下图则安装成功,还需要配置环境变量
vim /etc/profile
在最下方新增java环境变量,如下代码:
export JAVA_HOME=/usr/java/jdk1.8.0_131
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.${JAVA_HOME}/lib:${JRE_HOME}/lib:$CLASSPATH
export JAVA_PATH=${JAVA_HOME}/bin:${JRE_HOME}/bin
export PATH=$PATH:${JAVA_PATH}
Ctrl+c后执行命令 :wq 保存
source /etc/profile
执行java、javac、java -version等命令进行验证
sudo docker pull mysql:5.7
sudo docker images
docker run --name mysql -v /usr/local/mysql/data:/var/lib/mysql -v /usr/local/mysql:/etc/mysql/conf.d -v /usr/local/mysql/log:/var/log/mysql -e MYSQL_ROOT_PASSWORD=123456 -p 3306:3306 -d mysql:5.7
启动成功如图:
命令解析:
-d 后台运行
-p 端口映射 。-p 3306:3306 :映射容器服务的 3306 端口到宿主机的 3306 端口,外部主机可以直接通过 宿主机ip:3306 访问到 MySQL 的服务
-v 卷挂载 。 /usr/local/mysql/conf:/etc/mysql/conf.d :将到本地 /usr/local/mysql/conf挂载到容器的 /etc/mysql/my.cnf。后面修改配置文件,只需要再本地 /usr/local/mysql/conf修改即可,不需要进入容器里面进行修改
-e 环境配置。 -e MYSQL_ROOT_PASSWORD=123456 配置数据库连接密码为123456
–name 容器名字
正在运行的容器
docker ps
所有的容器
docker ps -a
如下图:容器列表中存在刚刚启动的mysql容器。状态为Up 20 minutes
代表正在运行中,并且已经运行了20分钟
查看防火墙状态:firewall-cmd --state
开启防火墙:systemctl start firewalld.service
关闭防火墙:systemctl stop firewalld.service
重启防火墙:systemctl restart firewalld.service
加载防火墙开放端口:firewall-cmd --reload
查看防火墙开放端口列表:firewall-cmd --list-port
开放端口:firewall-cmd --permanent --zone=public --add-port=5672/tcp
关闭端口:firewall-cmd --permanent --zone=public --remove-port=5672/tcp
先查看3306端口有没有开启
firewall-cmd --list-port
如果没有开启执行以下命令:
#永久开放3306端口号:
firewall-cmd --permanent --zone=public --add-port=3306/tcp
#加载防火墙开放端口
firewall-cmd --reload
#重新启动 防火墙
systemctl restart firewalld.service
docker exec -it mysqlserver bash
mysql -uroot -p
use mysql;
select host,user from user;
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
flush privileges;
查看数据挂载:
进入该目录:cd /usr/local/mysql/data
查看列表:ll
新建一个数据库:
刷新数据挂载(/usr/local/mysql/data)下数据列表
进入该目录:cd /usr/local/mysql/data
查看列表:ll
如下图,多了一个testdb。说明挂载成功
# cd到本地挂载配置文件目录下
cd /usr/local/mysql/conf
# 新建配置文件
vim 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 search rabbitmq
docker pull rabbitmq:3.9-management
management:代表该rabbitmq包含web管理页面
docker run -d \
-v /usr/local/rabbitmq/data:/var/lib/rabbitmq \
-p 5672:5672 -p 15672:15672 --name rabbitmq --restart=always \
--hostname rabbitmq rabbitmq:3.9
查看端口是否启动:
firewall-cmd --list-port
如果没有则运行以下命令:
#永久开放5672、15672端口号:
firewall-cmd --permanent --zone=public --add-port=5672/tcp
firewall-cmd --permanent --zone=public --add-port=15672/tcp
#加载防火墙开放端口
firewall-cmd --reload
#重新启动 防火墙
systemctl restart firewalld.service
1.查看部署的mq容器id: docker ps -a
2.进入容器内部:docker exec -it 容器id /bin/bssh
3.安装web插件:rabbitmq-plugins enable rabbitmq_management
确认springboot中application.properties配置正确
rabbitmq:
host: 8.130.17.94
port: 5672
username: root
password: root
virtual-host: /
docker search nacos
docker pull nacos:1.4.0
docker run -d -e MODE=standalone -e PREFER_HOST_MODE=hostname -e SPRING_DATASOURCE_PLATFORM=mysql -e MYSQL_SERVICE_HOST=服务器ip -e MYSQL_SERVICE_PORT=3306 -e MYSQL_SERVICE_USER=root -e MYSQL_SERVICE_PASSWORD=123456 -e MYSQL_SERVICE_DB_NAME=nacos -p 8848:8848 --name nacos --restart=always nacos/nacos-server:1.4.0
默认用户名密码都为nacos
http://服务器ip:8848/nacos/index.html
server:
port: 8084
spring:
datasource:
url: jdbc:mysql://服务器ip:3306/jjb?useUnicode=true&characterEncoding=utf-8&serverTimezone=GMT%2B8&useSSL=false
username: root
password: 123456
driver-class-name: com.mysql.jdbc.Driver
application:
name: orderService
cloud:
nacos:
discovery:
server-addr: 服务器ip:8848
mybatis:
mapper-locations: classpath:mapper/*.xml
type-aliases-package: cn.itcast.order.modules.*.entity
configuration:
map-underscore-to-camel-case: true
logging:
level:
cn.itcast: debug
pattern:
dateformat: MM-dd HH:mm:ss:SSS
userservice: # 给某个微服务配置负载均衡规则,这里是userservice服务
ribbon:
NFLoadBalancerRuleClassName: com.alibaba.cloud.nacos.ribbon.NacosRule # 负载均衡规则
feign:
httpclient:
enabled: true # 开启feign对HttpClient的支持
max-connections: 200 # 最大的连接数
max-connections-per-route: 50 # 每个路径的最大连接数
#mybatis
mybatis-plus:
mapper-locations: classpath*:/mapper/**/*.xml
#实体扫描,多个package用逗号或者分号分隔
typeAliasesPackage: cn.itcast.order.modules.*.entity
global-config:
#数据库相关配置
db-config:
#主键类型 AUTO:"数据库ID自增", INPUT:"用户输入ID", ID_WORKER:"全局唯一ID (数字类型唯一ID)", UUID:"全局唯一ID UUID";
id-type: ID_WORKER
banner: false
spring:
cloud:
nacos:
config:
server-addr: 服务器ip:8848
application:
name: orderService
在pom.xml最下面配置以下代码:
<build>
<finalName>app</finalName>
<resources>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.properties</include>
<include>**/*.yml</include>
<include>**/*.xml</include>
</includes>
<filtering>false</filtering>
</resource>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**/*.yml</include>
<include>**/*.properties</include>
<include>**/*.xml</include>
</includes>
<filtering>false</filtering>
</resource>
</resources>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
给每一个微服务分别创建一个该文件,在idea里面创建即可。里面的端口号和微服务端口号必须一致
FROM java:8
COPY *.jar /app.jar
CMD ["--server.port=8084"]
EXPOSE 8084
ENTRYPOINT ["java","-jar","/app.jar"]
在linux系统上,
cd /home
ll
mkdir xiaoguo(自定义)
ll
cd xiaoguo
mkdir hjzProject(自定义)
ll
cd hjzProject
创建各个微服务的jar包目录
比如:
mkdir all-order-service-8084
mkdir gateway-10010
mkdir login-service-8082
mkdir master-worker-service-8085
mkdir picture-service-8086
mkdir rabbitMQ-service-8087
举例:
1.进入某个jar包的存放目录:cd all-order-service-8084
2.构建镜像: docker build -t orderservice .
3.运行该镜像:docker run -d -p 8084:8084 --name orderservice orderservice
4.运行成功后,查看对应的容器:docker ps
1.构建springboot项目
2.打包应用
3.编写dockerfile
4.构建镜像
5.发布运行
手机扫一扫
移动阅读更方便
你可能感兴趣的文章