-v 将主机当前目录噶在到容器,如果主目录为空,会把容器中的文件也覆盖为空。 拷贝容器中的内容到宿主机:docker cp 容器id:被拷贝文件路径 拷贝到的路径
RabbitMQ
拉镜像,带web的
docker pull rabbitmq:management
运行
docker run -dit --name rabbitmq -p 15672:15672 -p 5672:5672 rabbitmq:management
运行时改账号密码
docker run -dit --name Myrabbitmq -e RABBITMQ_DEFAULT_USER=admin -e RABBITMQ_DEFAULT_PASS=admin -p 15672:15672 -p 5672:5672 rabbitmq:management
登录
http://localhost:15672
Redis
拉取
docker pull redis
运行
docker run -p 6379:6379 -v $PWD/data:/data -d redis redis-server --appendonly yes
命令说明:
-p 6379:6379 : 将容器的6379端口映射到主机的6379端口
-v $PWD/data:/data : 将主机中当前目录下的data挂载到容器的/data
redis-server --appendonly yes : 在容器执行redis-server启动命令,并打开redis持久化配置
Tomcat
拉取
docker pull tomcat
运行
docker run -d -p 8080:8080 -v /root/tomcat/:/usr/local/tomcat/webapps/ tomcat
参数说明:
-d 后台运行
-p 指定访问主机的8080端口映射到8080端口。
-v 指定我们容器的/usr/local/tomcat/webapps/目录为/root/tomcat/主机目录(挂载)
MySQL
拉取
docker pull mysql:5.7.19
运行
docker run -p 3306:3306 --name mysql -v $PWD/conf:/etc/mysql/conf.d -v $PWD/logs:/logs -v $PWD/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7.19
-p 3306:3306:将容器的 3306 端口映射到主机的 3306 端口。
-v -v $PWD/conf:/etc/mysql/conf.d:将主机当前目录下的 conf/my.cnf 挂载到容器的 /etc/mysql/my.cnf。
-v $PWD/logs:/logs:将主机当前目录下的 logs 目录挂载到容器的 /logs。
-v $PWD/data:/var/lib/mysql :将主机当前目录下的data目录挂载到容器的 /var/lib/mysql 。
-e MYSQL_ROOT_PASSWORD=123456:初始化 root 用户的密码。
-d :后台运行
zipkin 分布式实时数据追踪系统
数据在内存中,不能持久化
docker run -d -p 9411:9411 openzipkin/zipkin
数据持久化
创建mysql
docker run -d \
--restart always \
-v /etc/localtime:/etc/localtime:ro \
-e MYSQL_USER=root \
-e MYSQL_PASS=password \
-e MYSQL_HOST=192.168.0.8 \
-e STORAGE_TYPE=mysql \
-e MYSQL_DB=zipkin \
-e MYSQL_TCP_PORT=3306 \
--net host \
--name zipkin \
openzipkin/zipkin
nacos
官方文档
git clone https://github.com/nacos-group/nacos-docker.git
cd nacos-docker
单机模式 Derby
docker-compose -f example/standalone-derby.yaml up
单机模式 Mysql(帮你安装mysql,密码是root)
docker-compose -f example/standalone-mysql.yaml up
后台运行
docker-compose -f example/standalone-mysql.yaml up -d
数据未持久化,需要再nacos/conf/application.properties中添加
spring.datasource.platform=mysql
db.num=1
db.url.0=jdbc:mysql://192.168.206.128:3306/nacos_devtest?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true
db.user=root
db.password=123456
集群模式
docker-compose -f example/cluster-hostname.yaml up
服务注册
curl -X POST 'http://127.0.0.1:8848/nacos/v1/ns/instance?serviceName=nacos.naming.serviceName&ip=20.18.7.10&port=8080'
服务发现
curl -X GET 'http://127.0.0.1:8848/nacos/v1/ns/instances?serviceName=nacos.naming.serviceName'
发布配置
curl -X POST "http://127.0.0.1:8848/nacos/v1/cs/configs?dataId=nacos.cfg.dataId&group=test&content=helloWorld"
获取配置
curl -X GET "http://127.0.0.1:8848/nacos/v1/cs/configs?dataId=nacos.cfg.dataId&group=test"
Nacos 控制台
http://127.0.0.1:8848/nacos/
账号密码都是nacos
Nginx
docker pull nginx
docker run -d -p 80:80 --name nginx nginx
日志文件位置:/var/log/nginx
配置文件位置: /etc/nginx
资源存放的位置: /usr/share/nginx/html
sentinel-dashboard 服务熔断与降级
docker pull bladex/sentinel-dashboard:tagname
docker run --name sentinel -d -p 8858:8858 -d bladex/sentinel-dashboard:tagname
Seata Server 分布式事务处理
docker run --name seata-server
-p 8091:8091
-e SEATA_CONFIG_NAME=file:/root/seata-config/registry
-v /User/seata/config:/root/seata-config
seataio/seata-server
GitLab
docker pull gitlab/gitlab-ce
docker run --detach --publish 10443:443 --publish 1080:80 --publish 1022:22 --name gitlab --restart always --volume /f/gitlab/config:/etc/gitlab --volume /f/gitlab/logs:/var/log/gitlab --volume /f/gitlab/data:/var/opt/gitlab gitlab/gitlab-ce:latest
http://localhost:1080
账号root,密码重置为root123456
gitlab下载项目时,地址修改为本机地址
vi /opt/gitlab/embedded/service/gitlab-rails/config/gitlab.yml
## GitLab settings
gitlab:
## Web server settings (note: host is the FQDN, do not include http://)
host: localhost >> 这里改为主机的IP即可
port: 80
https: false
# Uncommment this line below if your ssh host is different from HTTP/HTTPS one
# (you'd obviously need to replace ssh.host_example.com with your own host).
# Otherwise, ssh host will be set to the `host:` value above
PostgreSQL
docker run -d --name postgres -p 5432:5432 \
-v /f/postgres/postgresql:/var/lib/postgresql \
-v /f/postgres/data:/var/lib/postgresql/data \
-e POSTGRES_USER=sonar \
-e POSTGRES_PASSWORD=sonar \
-e POSTGRES_DB=sonar \
-e TZ=Asia/Shanghai \
--restart always \
--privileged=true \
postgres:11
SonarQube
docker run -d --name sonarqube -p 9000:9000 \
--link postgres \
-v /f/sonarqube/extensions:/opt/sonarqube/extensions \
-v /f/sonarqube/logs:/opt/sonarqube/logs \
-v /f/sonarqube/data:/opt/sonarqube/data \
-e SONARQUBE_JDBC_URL=jdbc:postgresql://localhost:5432/sonar \
-e SONARQUBE_JDBC_USERNAME=sonar \
-e SONARQUBE_JDBC_PASSWORD=sonar \
--restart always \
--privileged=true \
sonarqube
本文详细介绍如何使用Docker部署包括RabbitMQ、Redis、Tomcat、MySQL等在内的多种常见服务,涵盖镜像拉取、运行配置及网络映射等关键步骤。
1653

被折叠的 条评论
为什么被折叠?



