1.安装redis
docker pull redis:latest #下载镜像
$ docker run -itd --name redis-test -p 6379:6379 redis #运行容器
$docker exec -it redis-test /bin/bash #进入容器
root@4515431c9ae1:/data# redis-cli #连接redis客户端
127.0.0.1:6379> set mkl 123456
OK
127.0.0.1:6379> get mkl
"123456"
2.安装rabbitmq
docker pull rabbitmq #下载rabbitmq镜像
docker run -d --hostname my-rabbit --name rabbit -p 15672:15672 -p 5672:5672 rabbitmq
安装插件:
docker ps
docker exec -it rabbit /bin/bash
rabbitmq-plugins enable rabbitmq_management
访问地址:
http://192.168.11.218:15672,这里的用户名和密码默认都是guest
3.安装nginx
docker pull nginx
方式1,直接启动:
docker run --name nginx-test -p 8080:80 -d nginx
http://192.168.11.218:8080 #访问nginx
方式2,和宿主机目录绑定:
#运行之前,一定要保证宿主机上有nginx.conf,否则绑定后找不到nginx.conf启动文件,可以手动考贝,或者执行docker cp
docker cp nginx-test:/etc/nginx ./ #把容器里的nginx的目录复制
docker rm -f nginx-test #删除测试的nginx-test
docker run --name mynginx -p 8088:80 -p 443:443 -v /etc/localtime:/etc/localtime:ro -v /wwwroot:/wwwroot -v /usr/nginx/nginx/nginx.conf:/etc/nginx/nginx.conf -v /usr/nginx/nginx/logs:/var/log/nginx --restart always -d nginx
docker exec -it mynginx nginx -t #检查配置文件是否正确
docker exec -it mynginx nginx -s reload #重新加载配置文件
在运行docker容器时可以加如下参数来保证每次docker服务重启后容器也自动重启:
docker run --restart=always CONTAINER ID
如果已经启动了则可以使用如下命令:
docker update --restart=always CONTAINER ID #设置启动nginx时自动启动
docker update --restart=no CONTAINER ID #设置启动nginx时不启动
default.conf文件如下:
server { listen 80; server_name localhost; #access_log /var/log/nginx/host.access.log main; location / { root html; index index.html index.htm; proxy_pass http://server-web/; } location /tos-server/ { root html; index index.html index.htm; proxy_pass http://server-web/tos-server/; } location /freeter-admin/ { root html; index index.html index.htm; proxy_pass http://server-web/freeter-admin/; } error_page 500 502 503 504 /50x.html; location = /50x.html { root /usr/share/nginx/html; } }
nginx.conf文件如下:
user nginx; worker_processes auto; error_log /var/log/nginx/error.log notice; pid /var/run/nginx.pid; events { worker_connections 1024; } http { include /etc/nginx/mime.types; default_type application/octet-stream; log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; access_log /var/log/nginx/access.log main; sendfile on; #tcp_nopush on; keepalive_timeout 65; #gzip on; upstream server-web{ server 192.168.11.218:8081; server 192.168.11.218:8082; } include /etc/nginx/conf.d/*.conf; }
4.安装tomcat
docker pull tomcat:9-jre8-alpine #最新版的tomcat,和WAR包上兼容性有问题,一直报404
启动tomcat主要有下面3种方式:
1.直接启动,每次需要重新上传war包
docker run -d -p 8080:8080 --name tomcat tomcat:9-jre8-alpine
注:前者是外围访问端口:后者是容器内部端口。webapps目录下文件为空,需将webapps.dist内容拷过来
copy war包到容器中,docker会自动加载war包
docker cp /usr/war/freeter-admin.war tomcat:/usr/local/tomcat/webapps
若无法上传文件到服务器,给目录加权限:
sudo chown -R mkl /usr/app/
2. 和宿主机上的目录绑定
创建Tomcat目录
[root@localhost /]# mkdir -p /usr/app/tomcat
拷贝容器内Tomcat配置文件和日志到本地
[root@localhost /]# docker cp tomcat:/usr/local/tomcat/conf /usr/app/tomcat/conf
[root@localhost /]# docker cp tomcat:/usr/local/tomcat/logs /usr/app/tomcat/logs
停止tomcat容器
[root@localhost /]# docker stop tomcat
删除tomcat容器
[root@localhost /]# docker rm tomcat
创建并运行tomcat容器
[root@localhost /]# docker run -d -p 8081:8080 --name tomcat -v /usr/app/tomcat/webapps:/usr/local/tomcat/webapps -v /usr/app/tomcat/conf:/usr/local/tomcat/conf -v /usr/app/tomcat/logs:/usr/local/tomcat/logs --restart=always tomcat:9-jre8-alpine
查看创建的容器
[root@localhost /]# docker ps | grep tomcat
查看容器的ip地址
[root@localhost /]# docker inspect --format='{{.NetworkSettings.IPAddress}}' tomcat
查看tomcat日志
[root@localhost /]# docker logs -f -t --tail 20 tomcat
导出镜像
docker save #ID or #Name
-
示例
docker save -o nginx.tar nginx:latest
或
docker save > nginx.tar nginx:latest
其中-o和>表示输出到文件,nginx.tar为目标文件,nginx:latest是源镜像名(name:tag) - docker load [options]
- 示例
docker load -i nginx.tar
或
docker load < nginx.tar
其中-i和<表示从文件输入。会成功导入镜像及相关元数据,包括tag信息
注:部署web项目后也许会出现docker容器与宿主、docker 容器与tomcat 应用打印日志时间和我们当前时间相差8个小时,可以添加如下配置:
①启动容器时,将系统时间挂载到容器内,可以解决docker容器与宿主时间不一致问题,如下所示:
添加参数
-v /etc/localtime:/etc/localtime:ro
完整命令如下示例:
sudo docker run -d --name tos-server -p 8081:8080 -v /etc/localtime:/etc/localtime:ro tos-server:v1
②docker 容器与tomcat 应用打印日志时间不一致, 启动tomcat容器后进入tomcat的"bin"目录,修改catalina.sh文件, 在注释结束的第一行添加如下内容:
JAVA_OPTS="$JAVA_OPTS -Dfile.encoding=UTF8 -Duser.timezone=GMT+08"
如下图所示:
修改保存后重启docker容器就可以了。
重启方法:
"docker ps"查询容器id,使用如下命令重启:
docker restart 容器id
相关推荐
安装docker 执行下面命令 $ yum install -y yum-utils device-mapper-persistent-data lvm2 $ yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo $ yum -y install docker-ce...
docker、fastdfs、nacose、nginx、rabbitmq、redis 已经全部打包好,使用shell脚本直接安装,配置文件已配置好,没有特殊要求直接就可以使用 docker-install.sh fastdfs.sh nacos.sh nginx.sh rabbitmq.sh redis.sh ...
docker-compose部署mysql+redis+sentinel1主2从+rabbitmq+nginx负载
内容包括docker常用命令、docker部署sqlserver、mongodb、redis(集群)、mysql、nginx、zookeeper集群、xxl-job、nacos(集群)、rocketmq、sentinel、jenkins等服务;docker开启远程调用、导出日志等
PHP8.1+nginx+mysql8+redis7+go redis asynqmon管理界面+rabbitmq docker compose file,php dockerfile,consul 自己整理的,需要的拿走,可以直接部署,也可以改改后部署 附带2个实用shell脚本, 以及 docker compose ...
基于docker的开发者集成环境 (docker,nodejs,php,nginx,mongo,mysql,redis等) 最近更新: 2019-08-31 redis管理工具PhpRedisAdmin 2019-08-28 mysql管理工具phpmyadmin 2019-08-26 增加php7.1、php7.3、...
【标题】"docker-for-symfony:用于Symfony 4的Docker堆栈-NGINX PHP7-FPM MySQL ELK Redis RabbitMQ" 提供了一种高效的方法,将Symfony 4应用程序部署在基于Docker的环境中。这个堆栈包含了多个关键组件,确保了...
MySQL、Reid、Nexus、Jenkins、Redis Sentinel、RabbitMQ、nginx、FastDFS使用Docker-Composites安装包
docker下安装常用软件方法过程,主要包括了 mysql、nginx、rabbitmq、redis 、minio等,以及docker常用命令。
这篇文章将指导您如何在虚拟机中安装 CentOS 7,并配置静态 IP、安装 JDK 1.8、Tomcat、Mysql、Maven、Nginx、Node.js、Docker、Redis、RabbitMQ 等环境。 安装 CentOS 7 在 VMware Fusion 中新建虚拟机,将 ...
Docker编写lnmp(nginx、php、mysql、redis、swoole、yasd、php-myadmin、RabbitMQ)的部署,支持自定义版本,支持离线安装
docker-symfony:Docker Symfony(PHP-FPM-NGINX-MySQL-MailHog-Redis-RabbitMQ)
docker、mysql、nginx、rabbitmq、redis、tomcat
Redis 是一个流行的 NoSQL 数据库,可以使用 Docker 快速安装和部署。 ### 安装命令 docker run -d --name redis-test -p 6379:6379 redis 安装 Nginx ------------- Nginx 是一个流行的 Web 服务器,可以使用 ...
ARM系统,安装docker之后,下载文件如下: nginx_1_25_4_arm64.tar.gz openJdk_8-jre-alpine.tar.gz rabbitmq_3_8_31_arm64.tar.gz redis_arm64.tar.gz 然后导入就可以。
* 将Redis安装为系统服务 * 后台启动Redis服务 * 查看Redis服务启动情况 2.4 安装RabbitMQ * 安装Erlang环境 * 安装RabbitMQ * 设置RabbitMQ开机启动 * 启动RabbitMQ服务 * 开启Web可视化管理插件 2.5 安装Tomcat...
包括docker搭建数据库搭建SSH 登录Docker-Compose 安装Git 安装Node.js 安装 JDK1.8 安装Maven 安装Nginx 安装Jenkins 安装Redis 安装RabbitMQ 安装Head 插件安装IK 分词器安装Kibana 安装
nginx + php + mysql + redis + rabbitmq + supervisor nodejs 环境 v1 进入目录,执行 docker-compose up 1、python.default, uWSGU服务启动 loalhost:8000 2、python.mysite,Django项目 loalhost 3、python.test...
带有Node,MySQL,MongoDB,NGINX,Memcached,Redis,Certbot和RabbitMQ映像的Docker Compose for Node项目 为什么选择NoDock? 映像非常简单,您为其提供了一个入口点并运行它。 对于非常简单/小的脚本,这很好,...
本系统应有Tomcat(网页应用服务器), MySQL(数据库服务), Redis(NoSQL数据库提供缓存服务), RabbitMQ(消息队列服务), ElasticSearch(检索服务), FastDFS(分布式文件存储系统)等组件, 因此有以下安装步骤: ...