返回> 网站首页
CentOS7系统下Docker环境下web部署
yoours2023-03-21 19:49:58
简介一边听听音乐,一边写写文章。
一、Docker部分命令
docker search 搜索仓库镜像
docker ps 显示当前正在运行的容器
docker ps -a 显示当前所有容器
docker start id启动对应id的容器
docker stop id停止对应id的容器
docker rm id 删除对应id的容器
docker images 查看所有镜像
docker rmi id 删除对应id的镜像
netstat -anp | grep 8080 查看端口占用
docker ps -a --no-trunc 查看完整命令
二、安装mysql
a) 下载镜像
b) 创建文件夹
在宿主机创建mysql文件夹
/usr/local/soskp/mysql/data
/usr/local/soskp/mysql/conf
c) 配置mysql
在conf文件夹下编写my.cnf
--------------------------------------------------------
[client]
# 端口号
port=3306
[mysql]
no-beep
default-character-set=utf8mb4
[mysqld]
# 端口号
port=3306
# 数据目录
datadir=/var/lib/mysql
# 新模式或表时将使用的默认字符集
character-set-server=utf8mb4
# 默认存储引擎
default-storage-engine=INNODB
# 将 SQL 模式设置为严格
sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
# 最大连接数
max_connections=1024
# 表缓存
table_open_cache=2000
# 表内存
tmp_table_size=16M
# 线程缓存
thread_cache_size=10
# myisam设置
myisam_max_sort_file_size=100G
myisam_sort_buffer_size=8M
key_buffer_size=8M
read_buffer_size=0
read_rnd_buffer_size=0
# innodb设置
innodb_flush_log_at_trx_commit=1
innodb_log_buffer_size=1M
innodb_buffer_pool_size=8M
innodb_log_file_size=48M
innodb_thread_concurrency=33
innodb_autoextend_increment=64
innodb_buffer_pool_instances=8
innodb_concurrency_tickets=5000
innodb_old_blocks_time=1000
innodb_open_files=300
innodb_stats_on_metadata=0
innodb_file_per_table=1
innodb_checksum_algorithm=0
# 其他设置
back_log=80
flush_time=0
join_buffer_size=256K
max_allowed_packet=4M
max_connect_errors=100
open_files_limit=4161
sort_buffer_size=256K
table_definition_cache=1400
binlog_row_event_max_size=8K
sync_master_info=10000
sync_relay_log=10000
sync_relay_log_info=10000
---------------------------------------------------------
d) 运行mysql
docker run -d \
--privileged=true \
--name soskp_mysql57 \
-p 5508:3306 \
--restart=always \
-v /usr/local/soskp/mysql/data:/var/lib/mysql \
-v /usr/local/soskp/mysql/conf/my.cnf:/etc/mysql/my.cnf \
-e MYSQL_ROOT_PASSWORD=root mysql:5.7 \
e) 进入mysql容器环境
docker exec -it 9890898908 /bin/bash
三、安装java11
a) 下载镜像
docker pull openjdk:11
b) 运行
docker run -d -it --name soskp_java11 openjdk:11
c) 进入java环境命令行
docker exec -it 9b799e7c500c /bin/bash
四、部署tomcat
a) docker pull tomcat
b) 修改配置文件server.xml
《Host name="localhost" appBase="webapps" unpackWARs="false" autoDeploy="false"》
《Context docBase="/usr/local/soskp/images" path="" name="rf" reloadable="false" /》
《/Host》
c) 启动
docker run -d -p 10002:7002 --name soskp_tomcat_images -v /usr/local/soskp/tomcat/server.xml:/usr/local/tomcat/conf/server.xml -v /usr/local/soskp/images:/usr/local/soskp/images tomcat
d) 运行报错Cannot find /usr/local/tomcat/bin/setclasspath.sh
在运行参数增加 --privileged=true
五、部署redis
a) docker pull redis
b) 创建配置文件redis.conf,内容:
# 允许远程连接
#bind 127.0.0.1
protected-mode no
# 持久化
appendonly no
# 密码
requirepass 12345678
c)运行
docker run --restart=always --network soskp-bridge --log-opt max-size=50m --log-opt max-file=2 -p 7003:6379 --name soskp_redis -v /usr/local/soskp/redis/redis.conf:/etc/redis/redis.conf -v /usr/local/soskp/redis/data:/data -d redis redis-server /etc/redis/redis.conf --appendonly yes --requirepass 12345678
六、部署jar
a) 在宿主机创建文件夹
b) 创建Dockerfile文件
---------------------------------------------------------------------------
# 设置本镜像需要使用的基础镜像
FROM openjdk:11
# 把jar包复制一份并改名
ADD MyCard.jar /app.jar
# 镜像暴露的端口, 要注意映射端口, 最好和外界启动容器端口一致
EXPOSE 10001
MAINTAINER soskp_web《xxx@163.com》
# 创建文件夹
RUN mkdir -p /usr/local/soskp/images
RUN mkdir -p /usr/local/soskp/dl
# 容器启动命令
ENTRYPOINT ["java","-jar","/app.jar"]
# 设置时区
RUN /bin/cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo 'Asia/Shanghai' >/etc/timezone