Docker部署手册
1.docker安装
基于centos7安装docker(Docker要求CentOS系统的内核版本高于3.10 uname -r 查看内核版本)最好安装7.5以上版本支持k8s
(1) 如果之前下载过需要运行命令卸载
yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
(2)安装 Docker-CE 基本环境
sudo yum install -y yum-utils \ device-mapper-persistent-data \ lvm2
(3)设置 docker repo 的 yum 位置
sudo yum-config-manager \ --add-repo \ https://download.docker.com/linux/centos/docker-ce.repo
(4)安装 docker,以及 docker-cli
sudo yum install docker-ce docker-ce-cli containerd.io
(5)启动docker
systemctl start docker
(6)停止docker
systemctl stop docker
(7)重启docker
systemctl restart docker
(8)查看docker状态
systemctl status docker
(9)查看防火墙状态 关闭防火墙
systemctl status firewalld systemctl stop firewalld.service
注:远程连接时候如果有防火墙可能会出现网络问题 在开发时可以先关闭防火墙 正式环境更改防火墙网络设置
2.常用命令
(1)基本命令
docker version --------查看docker版本
docker info -------------查看docker详细信息
docker --help -----------查看docker帮助命令
(2)镜像命令
docker pull 镜像名字:版本号 ----------拉取镜像
docker images --------查看镜像
docker rmi 镜像ID -------删除镜像(可以删除多个|最好把对应的容器全部停止删除后进行)
(3)容器命令
docker run [OPTIONS] IMAGE --创建容器并启动
--name=“容器新名字”:为容器指定一个名称
-d:后台运行容器,并返回容器ID,也即启动守护式容器
-i:以交互模式运行容器,通常与-t同时使用
-t:为容器重新分配一个伪输入终端,通常与-i同时使用
-P:随机端口映射
-p:指定端口映射 例如3306:3306
docker start 容器ID ---------启动容器(如果存在容器要用start 不能用run run是创建并启动一个新的容器)
docker stop 容器ID ---------停止容器
docker restart 容器ID ------重新启动容器
docker rmi 容器ID ----------删除容器(需要先停止运行在删除)
docker ps ---------------------显示正在运行的容器
docker ps -a -----------------显示全部容器
docker exec 容器ID --------进入容器
exit ---------------------------退出并停止容器
Ctrl+p+q --------------------只退出容器,不停止容器
docker logs -f -t --since --tail 容器ID -------查看容器日志
3.MySQL安装部署
(1)拉取MySQL镜像
name:root
password:root
docker pull mysql:8.0.20 ----------(*具体版本根据项目需求更改 如果不指定版本默认拉取最新版*)
(2)查看镜像是否拉取到本地
(3)创建一个新的mysql容器并运行
docker run --name mysql \
-p 3306:3306 \
-e MYSQL_ROOT_PASSWORD=root \
-d mysql:8.0.20
MySQL目录挂载
先创建目录 数据目录 初始化脚本目录 配置目录
/root/mysql/data
/root/mysql/conf
/root/mysql/init
docker run --name mysql
-p 3306:3306
-e MYSQL_ROOT_PASSWORD=root
-d mysql:8.0.20
(4)查看容器是否运行
docker ps
(5)进入容器内部修改加密方式
注:MySQL8如果不修改加密方式navicat远程连接不到
docker exec -it mysql bash ------------进入容器
mysql -uroot -p ----------------------------连接MySQL
ALTER USER 'root'@'%' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER; ------修改
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'root'; --------修改
FLUSH PRIVILEGES; -------------------修改后刷新
use mysql;
select host,user from user;
查看 % root 是否存在
(6)远程连接
用navicat远程连接数据库 测试成功 部署完成
4.nginx安装部署
(1)拉取nginx镜像
docker pull niginx ------拉取镜像
(2)创建nginx容器
docker run -d --name nginx -p 80:80 nginx
(3)登录nginx默认页面测试是否运行成功
5.redis安装部署
(1)拉取redis镜像
docker pull redis -------------拉取镜像
docker update redis --restart=alawys---------- 开机自启
(2)创建redis容器
mkdir -p /mydata/redis/conf
touch /mydata/redis/conf/redis.conf
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
(3)实现redis持久化
vi /mydata/redis/conf/redis.conf
进入后添加 appendonly yes
Shift+zz 退出并保存
(4)连接redis进行测试
docker exec -it redis redis-cli
(5)redis连接工具测试
6.minio安装部署
(1)拉取minio镜像
docker pull minio/minio
(2)创建目录
mkdir -p /home/minio/config
mkdir -p /home/minio/data
(3)创建minio容器
docker run -p 9000:9000 -p 9090:9090 \
--net=host \
--name minio \
-d --restart=always \
-e "MINIO_ACCESS_KEY=minioadmin" \
-e "MINIO_SECRET_KEY=minioadmin" \
-v /home/minio/data:/data \
-v /home/minio/config:/root/.minio \
minio/minio server \
/data --console-address ":9090" -address ":9000"
密码要求:(账号长度必须大于等于5,密码长度必须大于等于8位)
(4)登录minio测试是否成功
7.rabbitMQ安装部署
(1)拉取rabbitMQ的镜像
docker pull rabbitmq
(2)创建rabbitmq容器
docker run -d --name mq -p 15672:15672 -p 5672:5672 -e RABBITMQ_DEFAULT_USER=root -e RABBITMQ_DEFAULT_PASS=root rabbitmq:3.8-management
(3)安装插件
docker ps //查看运行中的容器
docker exec -it 容器id /bin/bash 进入rabbitmq容器
rabbitmq-plugins enable rabbitmq_management 在容器内安装一个插件
exit //退出容器
(4)进入默认页面测试
15691:是图像化界面
5671:是接受消息和发送消息的界面
部署后端服务
(1)修改服务的yml文件
例如MySQL Redis 的ip地址 修改为服务器的ip地址 (10.1.1.17)
spring:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://10.1.1.17:3306/security
username: root
password: root
redis:
host: 10.1.1.17
port: 6379
database: 0
(2)maven的打包插件打包
(3)上传到服务器,创建Dockerfile文件
##第一个dockerfile文件
FROM kdvolder/jdk8
MAINTAINER archive-management-0.0.1-SNAPSHOT
VOLUME /tmp
ADD archive-management-0.0.1-SNAPSHOT.jar archive-management-0.0.1-SNAPSHOT.jar
RUN bash -c 'touch /archive-management-0.0.1-SNAPSHOT.jar'
ENTRYPOINT ["java","-jar","/archive-management-0.0.1-SNAPSHOT.jar"]
EXPOSE 8088
(4)自定义镜像
docker build -t archive-management:0.0.1-SNAPSHOT .
(5)创建容器
docker run -d --name liheng -p 80:80 镜像ID
(6)运行容器 查看日志
docker start 容器ID
docker logs -f liheng
文章来源
发表评论