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

文章来源

评论可见,请评论后查看内容,谢谢!!!评论后请刷新页面。