Portainer
Portainer 是一个可视化的容器镜像的图形管理工具,利用Portainer可以轻松构建,管理和维护Docker环境。 而且完全免费,基于容器化的安装方式,方便高效部署。
-
拉取镜像
docker pull portainer/portainer -
查看并运行镜像
docker images docker run -d -p 9000:9000 --name=myportainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer
命令说明 :
-p 端口映射,格式为:主机(宿主)端口:容器端口;
-v: 将指定目录挂载到容器里;
--restart=always: 重启docker时,自动启动容器。
- 访问(ip+端口号)
初次登录需要设置用户名和密码。
- 选择local即可,选择完毕,点击Connect可连接到docker:
- 可对本地的镜像、容器等进行管理。
Tomcat
Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。
-
从 Docker Hub 上查找镜像
docker search tomcat -
拉取镜像
docker pull tomcat -
查看镜像
docker images -
运行镜像
docker run -d -it -p 8080:8080 --name mytomcat tomcat命令说明:
-i : 即使没有连接,也要保持标准输入保持打开状态,一般与 -t 连用。
-t: 分配一个伪tty,一般与 -i 连用。
-d: 后台程序运行。 -
正常启动访问404问题
问题分析:1.确认服务器安全组的端口开放; 2 进入容器查看webapps文件是否为空。
- 进入容器并查看文件目录
docker exec -it 容器Id或名字 /bin/bash
ls -l
- 处理方法二选一
① 删除webapps,把webapps.dist改名为webapps
rm -rf webapps
mv webapps.dist webapps
② 将webapps.dist文件复制到webapps里
cp -r /usr/local/tomcat/webapps.dist/* /usr/local/tomcat/webapps/
- 再次访问
Nginx
- 拉取镜像
docker pull nginx
- 查看镜像
docker images
- 创建容器
docker run --name nginx-test -p 8081:80 -d nginx
命令说明:
--name nginx-test:容器名称。
-p 8081:80:端口进行映射,将本地 8081 端口映射到容器内部的 80 端口。
-d nginx:设置容器在在后台一直运行。
- 访问测试
Redis
Redis 是一个高性能的key-value数据库。
- 拉取镜像
docker pull redis #不指定版本,则默认拉取最新latest版本。
- 创建文件
mkidr - p /root/docker/redis/conf
touch /root/docker/redis/conf/redis.conf
- 编辑redis.conf
#bind 127.0.0.1 //允许远程连接
protected-mode no
requirepass 123456 //密码
- 运行镜像
docker run -d -p 6379:6379 -v /root/docker/redis/conf/redis.conf:/usr/local/etc/redis/redis.conf -v /root/docker/redis/data:/data --name myredis 87856cc39862
redis-server /usr/local/etc/redis/redis.conf --appendonly yes
命令说明:
-v: 将指定目录文件挂载到容器里
redis-server: 通过指定配置文件启动redis
--appendonly yes: 开启AOF Redis的持久化存储提供两种方式:RDB与AOF。RDB是默认配置,AOF需要手动开启。
- 测试连接
MongoDB
MongoDB 是一个基于分布式文件存储的数据库。
- 拉取镜像
docker pull mongo
- 查看镜像
docker images
- 创建容器
docker run -itd --name mongo -p 27017:27017 mongo
参数说明: -p 27017:27017 :映射容器服务的 27017 端口到宿主机的 27017 端口。外部可以直接通过 宿主机 ip:27017 访问到 mongo 的服务
- 访问
可视化工具:Navicat或MongoDB Compass
Mysql
MySQL 是流行的关系型数据库管理系统。
- 查找镜像
docker search mysql
- 拉取镜像
docker pull mysql
- 创建容器
docker run -p 12345:3306 --name mysql-test -v /root/mysql/conf:/etc/mysql/conf.d -v /root/mysql/logs:/logs -v /root/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql
命令说明:
-p: 12345:3306:将主机的12345端口映射到docker容器的3306端口。
--name mysql-test:运行服务名字。
-e MYSQL_ROOT_PASSWORD=123456:初始化 root 用户的密码。
-d mysql : 后台程序运行mysql。
-v /root/mysql/conf:/etc/mysql/conf.d :将主机/root/mysql/录下的conf/my.cnf 挂载到容器的 /etc/mysql/conf.d
-v /root/mysql/logs:/logs:将主机/root/mysql目录下的 logs 目录挂载到容器的 /logs。
-v /root/mysql/data:/var/lib/mysql 将主机 /root/mysql 目录下的data目录挂载到容器的/var/lib/mysql
- 连接测试
这里使用免费的数据库连接工具DBeaver
将allowPublicKeyRetrieval设置为true;
输入ip和端口、用户密码,测试连接成功。
PostgreSQL
PostgreSQL 是一个功能非常强大的、源代码开放的客户/服务器关系型数据库管理。
- 搜索镜像
docker search postgres
- 拉取镜像
docker pull postgres:13.2
- 查看镜像并创建容器
docker images
docker run --name my_postgres -v /home/pgdata:/var/lib/postgresql/data -e POSTGRES_PASSWORD=postgres -p 54321:5432 -d postgres:13.2
- 测试连接
- 添加postgis扩展
方法1.在已有postgres镜像,手动添加扩展。
① 进入容器
docker exec -it my_postgres /bin/bash
② 升级apt-get
apt-get update
③ 安装postgis
apt-get install postgresql-13-postgis-3 postgresql-13-postgis-3-dbgsym postgresql-13-postgis-3-scripts
④ 启用postgis
create extension postgis
方法2.下载带postgis扩展的镜像。(推荐)
① 拉取镜像
docker pull mdillon/postgis
② 创建容器
docker run --name postgres -e ALLOW_IP_RANGE=0.0.0.0/0 -e POSTGRES_USER=postgres -e POSTGRES_PASSWORD=123456 -e POSTGRES_MULTIPLE_EXTENSIONS=postgis -v /home/pgdata:/var/lib/postgresql/ -p 54321:5432 -d mdillon/postgis
命令说明:
-e POSTGRES_PASSWORD=123456: 设置数据库的登录密码为123456
-e POSTGRES_MULTIPLE_EXTENSIONS='postgis': 开启postgis扩展
-p 54321:5432: 将容器的5432端口映射到外部机器的54321端口
-e ALLOW_IP_RANGE=0.0.0.0/0: 表示允许所有ip访问
-v /home/pgdata:/var/lib/postgresql/: 数据持久化 把数据挂载到宿主机的home/pgdata下
- 测试postgis扩展
SELECT ST_SetSRID(ST_Point(-87.71,43.741),4326),ST_GeomFromText('POINT(-87.71 43.741)',4326)
Nacos
Nacos 是一个易于构建云原生应用的动态服务发现、配置管理和服务管理平台。
- 搜索镜像
docker search nacos
- 拉取镜像
docker pull nacos/nacos-server
- 启动nacos容器
docker run --env MODE=standalone --name nacos -d -p 8848:8848 nacos/nacos-server
命令说明:--env MODE=standalone: 单机启动
- 测试登录(用户名:nacos,密码:nacos)
RabbitMQ
RabbitMQ 是一套开源(MPL)的消息队列服务软件,是由 LShift 提供的一个AMQP的开源实现,由以高性能、健壮以及可伸缩性出名的 Erlang 写成。
- 查找镜像
docker search rabbitmq
- 拉取镜像
docker pull rabbitmq
- 查看本地镜像
docker images
- 创建容器
docker run -d --name my-rabbitmq -p 5672:5672 -p 15672:15672 -v `pwd`/data:/var/lib/rabbitmq --hostname myRabbit -e RABBITMQ_DEFAULT_VHOST=my_vhost -e RABBITMQ_DEFAULT_USER=admin -e RABBITMQ_DEFAULT_PASS=admin rabbitmq
命令说明:
-d: 后台运行容器。
--name my-rabbitmq: 指定容器名为my-rabbitmq 。
-p 5672:5672 -p 15672:15672: 指定服务运行的端口(5672:应用访问端口;15672:控制台Web端口号)
-v: 映射目录或文件
--hostname: 主机名(RabbitMQ的一个重要注意事项是它根据所谓的 “节点名称” 存储数据,默认为主机名)。
-e: 指定环境变量;(RABBITMQ_DEFAULT_VHOST:默认虚拟机名;RABBITMQ_DEFAULT_USER:默认的用户名;RABBITMQ_DEFAULT_PASS:默认用户名的密码)
- web端管理(IP:15672)
- 访问失败解决
- 进入容器
docker exec -it 2b092b23ee2c /bin/bash
2.开启web界面管理插件
rabbitmq-plugins enable rabbitmq_management