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 下
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 # 没有信息回退就是通的 -- 大佬运维技巧
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
安装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
小细节-产线经验
# 注意 -- 这块可能启动不了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
docker exec -it mysql /bin/bash
mysql -uroot -proot
create databse test1;
# 如果出现了无法进入的情况
需要授权
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
docker exec -it postgres /bin/bash
psql -U postgres -d postgres -h 127.0.0.1 -p 5432
create database testone;
# 但是我们的navicat 连接不了Pg, 因为版本过低了,更新了之后,成功登录
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
初始化操作
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;
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;
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
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
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机器进行上传
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
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
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/
linux命令查找
docker pull wcjiang/linux-command:latest
docker run -d --name linux-command --restart always -p 9555:3000 wcjiang/linux-command:latest
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"
菜谱cook
docker pull yunyoujun/cook:latest
docker run -d --name cook --restart always -p 8085:80 yunyoujun/cook:latest