# 一、准备工作
# 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
← Docker环境