tomcat

docker pull tomcat:9.0
docker run  -d -p 8080:8080  --name tomcat-test tomcat:9.0
docker exec -it tomcat-test /bin/bash

# tomcat的页面
cd webapps.dist/
cp -ar * ../webapps
然后我们就可以看到目录了

#页面默认是放在
/usr/local/tomcat/webapps/ROOT 下的
我们把原有的index.jsp删除掉
rm -rf index.jsp
echo "haha-testone" >> index.html
页面就会更改了
 
访问我们的ip 加端口 默认是访问  /usr/local/tomcat/webapps
如果我们把ROOT改了名字 同样的访问路径也要更改,比如ROOT改为 HELLO 就也要改为 
/usr/local/tomcat/webapps/HELLO/index.html

war包传输到启动的tomcat 里面的时候,tomcat 会自动解压这个war包
产线上也是把war包放在 /usr/local/tomcat/webapps 下

image.pngimage.png

redis

buildkit底层走的containerd  它打的镜像更加轻量

 
docker pull redis:5.0
# 启动带密码设置
docker run -id --name reids-test -p 6379:6379 reids:5.0 --requirepass "12345.com"
docker exec -it redis-test /bin/bash

# 一般都会建立工作目录  给777
mkdir -p /data/redis/data
mkdir -p /data/redis/conf
/data/redis/conf/redis.conf挂载给/usr/local/etc/redis/redis.conf
/data/redis/data挂载给/data


docker run -it --name redis --volume=/data/redis/conf/redis.conf:/usr/local/etc/redis/redis.conf --volume=/data/redis/data:/data --volume=/data --workrid=/data -p 6379:6379 --restart=no --detach=true rids redis-server /usr/loca/redis/redis.conf --appendonly yes

补充:如何检查端口通不通

ssh -v 6379 root@192.168.0.179
echo >/dev/tcp/192.168.0.179/6379 # 没有信息回退就是通的  -- 大佬运维技巧

image.png

Mysql

二进制

# 在docker跑之前,想想二进制怎么装?
# 1、去mysql 官网 - > download -> 最下方 MySQL Community(GPL) Downloads
# 2、yum -> 下载对应版本 -> 获取ip地址
# 3、wget ip地址
# 4、rpm -ivh  --- 获取到包和源
# 5、 yum -y install mysql-server 就可以了
# 6、rpm -qa | grep mysql
# 7、vim /etc/my.cnf 更改配置文件
# 8、启动mysqld service mysqld start
# 9、查看是否启动成功? ps -ef | grep mysql
# netstat -nultp | grep 3306
# 10、 查看密码 cat mysqld.log | grep password

docker

docker pull mysql:5.7
mkdir -p /root/mysql/{data,log,conf}
cd /root/mysql/conf
touch my.cnf

docker run -it  -p 3306:3306 --name mysql -v /root/mysql/conf:/etc/mysql/conf.d -v /root/mysql/logs:/logs \
-v /root/mysq/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=root  mysql:5.7

image.pngimage.png image.png

安装mysql9.0 (8.0也是一样的 )

# 安装mysql不同版本店,都可以去dockerhub上面搜mysql
基本上对应版本都有的

也是一样创建目录
mkdir -p /root/mysql/{data,log,conf}
编写mysql.cnf 配置文件
[mysqld]
#服务端口号 默认3306
port=3306
user=mysql
#mysql数据文件所在位置
datadir=/var/lib/mysql
#pid 
pid-file=/var/run/mysqld/mysqld.pid 
socket=/var/run/mysqld/mysqld.sock 
default-time-zone ='+8:00'

sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
#允许访问的IP网段
bind-address=0.0.0.0

#只能用IP地址检查客户端的登录,不用主机名
skip_name_resolve=1

#事务隔离级别,默认为可重复读,mysql默认可重复读级别(此级别下可能参数很多间隙锁,影响性能)
transaction_isolation=READ-COMMITTED

#最大连接数
max_connections=400

#最大错误连接数
max_connect_errors=1000

#TIMESTAMP如果没有显示声明NOT NULL,允许NULL值
explicit_defaults_for_timestamp=true

#SQL数据包发送的大小,如果有BLOB对象建议修改成1G 
max_allowed_packet=1G

image.png

小细节-产线经验

# 注意 --  这块可能启动不了mysql 因为需要转换一下格式
 yum -y install dos2unix
 dos2unix /root/mysql/conf/my.cnf
# 启动Mysql9.0
docker run --privileged=true -p 3306:3306 -m 1g --name mysql -v /data/mysql/conf:/etc/mysql/conf.d -v /data/mysql/logs:/var/log/mysql -v /data/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=root -d mysql:9.0.0

image.png

docker exec -it mysql /bin/bash
mysql -uroot -proot
create databse test1;

image.pngimage.pngimage.png

# 如果出现了无法进入的情况
需要授权
mysql -uroot -proot
set password = 'root123'
grant system_user on *.* to 'root';
flush privileges;
exit

mysql -uroot -proot123
user mysql;
update user set host = '%' where user = 'root';
# 设置root任意地点可登录
flush privileges;

mysql -uroot -proot123
ALTER USER 'root'@'%' INFNTIFIED BY 'root123' PASSWORD EXPIRE NEVER;
ALTER USER 'root'@'%' INFNTIFIED WITH mysql_native_password BY 'root123';

postgres

docker pull postgres
mkdir -p /opt/pgsql/data

docker run -d --restart=always --name postgres -v /opt/pgsql/data:/var/lib/postgresql/data -e POSTGRES_PASSWORD=pg123 -p 5432:5432 postgres

image.png

docker exec -it postgres /bin/bash
psql -U postgres -d postgres -h 127.0.0.1 -p 5432
create database testone;

image.png

# 但是我们的navicat 连接不了Pg, 因为版本过低了,更新了之后,成功登录

image.png

Oracle

1、拉取镜像
执行命令:docker pull registry.cn-hangzhou.aliyuncs.com/zhuyijun/oracle:19c
2、创建挂载文件
执行命令:mkdir -p /root/data/oracle/oracledata
3、为挂载文件授权
执行命令:chmod 777 /root/data/oracle/oracledata


启动Oracle 容器
4、启动
docker run -d -p 1521:1521 -e ORACLE_SID=ORACLEDB -e ORACLE_PDB=ORACLEPDB -e ORACLE_PWD=oracle -e ORACLE_EDITION=standard -e ORACLE_CHARACTERSET=ZHS16GBK -v /root/data/oracle/oracledata:/opt/oracle/oradata --name=oracle registry.cn-hangzhou.aliyuncs.com/zhuyijun/oracle:19c


docker logs -f 容器id
初始化操作

image.png

docker exec -it oracle /bin/bash
sqlplus / as sysdab

# 配置oracle 初始化
show pdbs;
# 修改system 密码 alter user system identified by system;
# 修改sys的密码 alter user sys identified by sys;
# 设置修改的密码永不过期 alter profile default limit password_life_time unlimited;

image.png

image.png

show pdbs;
alter session set container=ORACLEPDB; 
create tablespace skzbtest datafile '/opt/oracle/oradata/ORACLEDB/ORACLEPDB/skzbtest. dbf' size 50M autoextend on maxsize unlimited; 
create user skzb identified by skzb123 default tablespace skzbtest; 
grant dba to skzb;

image.png

Es

docker pull elasticsearch:7.17.2
mkdir -p /opt/es/config
mkdir -p /opt/es/data
echo "http.host: 0.0.0.0" > /opt/es/config/elasticsearch.yml
cat /opt/es/config/elasticsearch.yml
chmod 777 -R /opt/es

docker run --name elasticsearch -p 9200:9200 -p 9300:9300 \
-e "discovery.type=single-node" \
-e ES_JAVA_OPTS="-Xms128m -Xmx512m" \
-v /opt/es/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml  \
-v /opt/es/data:/usr/share/elasticsearch/data \
-v /opt/es/plugins:/usr/share/elasticsearch/plugins \
-d elasticsearch:7.17.2

image.png image.png

kibana

docker pull kibana:7.17.2  # 要和ES版本一致
docker run --name kibana -e ELASTICSEARCH_HOSTS=http://192.168.0.179:9200 -p 5601:5601 \
-d kibana:7.17.2

image.pngimage.png

ftp

mkdir -p /data/ftp/{data,log,ftp}
docker run -d --name vsftpd --restart=always -v /data/ftp/data:/home/vsftpd -v /data/ftp/log:/var/log/vsftpd -p 20:20 -p 21:21 -p 20000:20000 -e FTP_USER=admin -e FTP_PASS=admin -e PASV_MIN_PORT=20000 -e PASV_MAX_PORT=20000 -e PASV_ADDRESS=192.168.0.179 -e LOG_STDOUT=1 fauria/vsftpd


# 登录41机器进行上传

image.pngimage.pngimage.png

PDF

docker pull registry.cn-hangzhou.aliyuncs.com/jeson/s-pdf:0.26.1-fat
mkdir -p /data/s-pdf && cd /data/s-pdf

vim docker-compose.yaml

version: '3.9'
services: 
  stirling-pdf:
    image: registry.cn-hangzhou.aliyuncs.com/jeson/s-pdf:0.26.1-fat
    container_name: Stirling-PDF
    ports: 
      - '6080:8080'
    volumes: 
      - /data/s-pdf/trainingData:/usr/share/tessdata #OCR 语言支持
      - /data/s-pdf/extraConfigs:/configs
      - /data/s-pdf/customFiles:/customFiles/
      - /data/s-pdf/logs:/logs/
    environment: 
      DOCKER_ENABLE_SECURITY: true #启用内部安全功能
      SECURITY_ENABLELOGIN: true #启用登录功能
      SECURITY_INITIALLOGIN_USERNAME: jeven
      SECURITY_INITIALLOGIN_PASSWORD: jeven #Stirling-PDF登录账号 #Stirling-PDF登录密码
      UI_APPNAME: jeven-PDF #自定义导航标题
      INSTALL_BOOK_AND_ADVANCED_HTML_OPS: false
      LANGS: zh_CN #设置语言


docker-compose up -d

image.pngimage.png

filegator

docker pull filegator/filegator
创建FileGator挂载目录/data/filegator/data
mkdir -p /data/filegator/data && cd /data/filegator/
设置目录权限
chmod -R 777 /data/filegator/



使用docker-cli创建FileGator容器,执行以下命令,映射端口可自行修改。
 docker run -itd --name filegator --restart=always -p 8888:8080 -v /data/filegator/data:/var/www/filegator/repository filegator/filegator


 admin  admin123

image.png

docker-compose 模式
version: '3.8'
services:
  filegator:
    image: filegator/filegator
    container_name: filegator
    restart: always
    ports:
      - 8888:8080
    volumes:
      - /data/filegator/data:/var/www/filegator/repository/

image.png

linux命令查找

docker pull wcjiang/linux-command:latest
docker run -d --name linux-command --restart always -p 9555:3000 wcjiang/linux-command:latest

image.png

it-tools-实用 个人强推

docker pull corentinth/it-tools:latest

##  docker-cli
docker run -d --name it-tools --restart unless-stopped -p 8080:80 corentinth/it-tools:latest


## docker-compose 
version: '3'
services:
  it-tools:
    image: corentinth/it-tools:latest
    container_name: it-tools
    restart: unless-stopped
    ports:
      - "8080:80"

image.png

菜谱cook

docker pull yunyoujun/cook:latest
docker run -d --name cook --restart always -p 8085:80 yunyoujun/cook:latest

image.pngimage.png