# 一、准备工作

# 1、前置说明

注意

关于 docker 的映射文件本地位置: /sources
关于 docker 的端口映射说明:比默认端口 + 1

  • option 说明
-d # 后台守护式🎈启动
-p [本地端口]:[镜像端口] # 端口映射

--privileged=true # 扩大容器权限
-v [本地文件路径]:[镜像文件路径] # 数据备份
# 自动重启docker容器
docker update --restart=always [容器ID]

# 2、Portainer 工具

  使用 Portainer 一个轻量级的图形化界面应用来管理 docker。

官网:

https://docs.portainer.io/v/ce-2.9/start/install/server/docker/linux

docker volume create portainer_data

docker run -p 8000:8000 -p 9000:9000 --name portainer \
--restart=always \
-v /var/run/docker.sock:/var/run/docker.sock \
-v portainer_data:/data \
-d portainer/portainer-ce:2.9.3
  • 访问
# 服务器ip地址:9000
admin
[密码设置]
其他工具

  上面的 Portainer 是轻量级的,下面的这个 CIG 是重量级的

# CAdvisor监控收集  +  InfluxDB存储数据  +  Granfana展示图表

# 略

# 3、端口映射

基础环境 端口映射 项目数据 端口映射
JDK MySQL 3307:3306
Tomcat 8081:8080 Redis 6380:6379
Maven MongoDB 27018:27017
RabbitMQ 15672
Nginx 81:80
Node

# 二、基础镜像

# 1、JDK 安装

# 安装
docker pull openjdk:8
docker images

# 2、Tomcat 安装

# 安装
docker pull tomcat:8.5.83-jdk8
docker images

# 文件准备
docker run -p 8081:8080 --name tomcat8 -d tomcat:8.5.83-jdk8

mkdir -p /sources/tomcat8
docker cp tomcat8:/usr/local/tomcat/webapps.dist /sources/tomcat8/
cd /sources/tomcat8/ && mv webapps.dist webapps
docker cp tomcat8:/usr/local/tomcat/conf /sources/tomcat8/
docker cp tomcat8:/usr/local/tomcat/logs /sources/tomcat8/

docker rm -f tomcat8

# 启用
docker run -p 8081:8080 --name tomcat8 --privileged=true \
-v /sources/tomcat8/webapps:/usr/local/webapps \
-v /sources/tomcat8/conf:/usr/local/tomcat/conf \
-v /sources/tomcat8/logs:/usr/local/tomcat/logs \
-d tomcat:8.5.83-jdk8

docker ps
docker exec -it tomcat8 /bin/bash
ls
rm -r webapps
mv webapps.dist webapps
  • 测试
# 直接访问 服务器地址:8081 即可
  • server.xml 配置
# /sources/tomcat8/conf/server.xml 目录下修改即可

# 3、Nginx 安装

# 安装
docker pull nginx:1.17.10
docker images

# 文件准备
# 方式1
docker run --name nginx -p 81:80 -d nginx:1.17.10

mkdir -p /sources/nginx/conf
docker cp nginx:/etc/nginx/nginx.conf /sources/nginx/conf/nginx.conf

docker rm -f nginx

# 方式2
# (当然也可以离线下载nginx-1.17.10.tar.gz --- 然后拿取里面的nginx.conf 备用)
mkdir -p /sources/nginx/conf
cp -p /root/code-environment/conf-source/nginx.conf /sources/nginx/conf

# 启用
docker run --name nginx -p 81:80 --privileged=true \
-v /sources/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \
-v /sources/nginx/html:/usr/share/nginx/html \
-v /sources/nginx/logs:/var/log/nginx \
-d nginx:1.17.10

docker ps
docker exec -it nginx /bin/bash

ps -ef | grep nginx
  • 配置文件

提示

docker 中的 nginx 其配置文件 nginx.conf 内是没有 serve 节点的,需要手动添加

# 编辑 /sources/nginx/conf/nginx.conf 文件即可

# 4、ubuntu 容器

# 演示环境
docker pull ubuntu

docker run -it ubuntu
# 安装vim
apt-get update
apt-get -y install vim

# 三、Docker 常规安装

# 1、Mysql 安装

# 安装
docker pull mysql:5.7.40
docker images

# 启用(数据备份在本地的/sources文件夹中)
docker run -p 3307:3306 --name mysql --privileged=true \
-v /sources/mysql/logs:/var/log/mysql \
-v /sources/mysql/data:/var/lib/mysql \
-v /sources/mysql/conf:/etc/mysql/conf.d \
-e MYSQL_ROOT_PASSWORD=mysql666 \
-d mysql:5.7.40

docker ps
docker exec -it mysql /bin/bash

# 测试
mysql -uroot -p
  • 远程登录
# 不用配置也行
  • 编码问题解决
cd /sources/mysql/conf
vim my.cnf

# 内容
[client]
default_character_set=utf8
[mysqld]
collation_server = utf8_general_ci
character_set_server = utf8
docker restart mysql

docker exec -it mysql /bin/bash
mysql -uroot -p
> SHOW VARIABLES LIKE 'character%';
> quit

# 2、Redis 安装

# 安装
docker pull redis:5.0.8
docker images

# 文件准备
# 1、redis.conf下载(官方docker容器内是没有redis.conf):
# https://redis.io/docs/management/config/
# 2、文件文件
mkdir -p /sources/redis
cp -p /root/code-environment/conf-source/redis.conf /sources/redis/

# 启用
docker run -p 6380:6379 --name redis --privileged=true \
-v /sources/redis/redis.conf:/etc/redis/redis.conf \
-v /sources/redis/data:/data \
-d redis:5.0.8 redis-server /etc/redis/redis.conf \
--appendonly yes # 数据持久化(可选)

docker ps
docker exec -it redis /bin/bash
  • 测试
docker exec -it redis /bin/bash

redis-cli
> set name lencamo
> get name
  • redis.conf 配置
vim /sources/redis/redis.conf


# ① 可远程连接(大概在70行左右👀)
bind 0.0.0.0
# bind 127.0.0.1

# ② 设置访问密码(大概在508行左右👀)
requirepass [密码]
#requirepass foobared

# ③ 解决docker run中-d参数冲突
daemonize no
# 使生效
docker restart [容器ID]

# 3、MongoDB 安装

# 安装
docker pull mongo:4

# 启用
docker run -p 27017:27017 --name mongo \
-v /mydata/mongo/db:/data/db \
-d mongo:4

# 4、RabbitMQ 安装

# 安装
docker pull rabbitmq:3.9-management

# 启用
docker run -p 5672:5672 -p 15672:15672 --name rabbitmq \
-d rabbitmq:3.9-management
# 访问:http://ip地址:15672
# guest guest
更新于 : 8/7/2024, 2:16:31 PM