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
Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐