返回> 网站首页 

CentOS7系统下Docker环境下web部署

yoours2023-03-21 19:49:58 阅读 1144

简介一边听听音乐,一边写写文章。

一、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) 下载镜像

        docker pull mysql:5.7

    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

---------------------------------------------------------------------------

    c) 创建镜像文件并加入本地镜像库
       docker build -t soskp_web_jar . -f Dockerfile
    d)  运行
       docker run -p 10001:10001 -p 10003:10003 -p 10004:10004/udp --name soskp_web -v /usr/local/soskp/images:/usr/local/soskp/images -v /usr/local/soskp/dl:/usr/local/soskp/dl -d soskp_web_jar
    e) 查看日志
        docker logs --tail 300 -f soskp_web

七、jar注意事项
    a) pom.xml文件,在《build》标签中加入
             《plugins》
                《plugin》
                    《groupId》org.springframework.boot《/groupId》
                    《artifactId》spring-boot-maven-plugin《/artifactId》
                《/plugin》
            《plugin》
《/plugins》
    b)  编译包类型改为jar
        《packaging》jar《/packaging》
    c) application.propertiese文件修改
        1) 访问端口
            server.port=10001
        2) mysql驱动
            spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
        3) 数据库连接需要指定具体ip
            spring.datasource.url=jdbc:mysql://10.0.9.77:7002/MyCard?serverTimezone=UTC&useUnicode=true&characterEncoding=utf-8
        4) 如果使用了容器间网络,则使用指定容器名称作为网络ip信息


微信小程序扫码登陆

文章评论

1144人参与,0条评论