docker 部署etcd
Etcd:一个分布式的k-v存储服务
Etcd官网https://etcd.io/
etcd安装
1. 拉取bitnami/etcd镜像
docker pull bitnami/etcd
2. 启动etcd
docker run -it --name etcd-server \
-p 2379:2379 -p 2380:2380 \
--env ALLOW_NONE_AUTHENTICATION=yes \
-d bitnami/etcd
通过访问宿主机本身端口2379即可访问etcd
3. 可视化etcd管理平台etcd-manager安装
本机没有etcd环境,并且对etcd命令查看数据不方便,可以安装etcd管理平台。
从github地址https://github.com/gtamas/etcdmanager 找到安装包进行安装即可。
#-2.Docker下安装部署minio对象存储系统
命令中 最后的 \ 表示 命令还没有结束,换行继续书写命令
-2.1 下面内容可直接复制并执行
#1.搜索minio镜像
docker search minio
#2.拉取最新版本minio镜像,带版本号拉取制定版本的minio,不带版本号,默认拉取最新的
docker pull minio/minio
#3.创建并启动容器,-d 后台运行
docker run -p 9000:9000 -p 9090:9090 \
--name minio \
-d --restart=always \
-e "MINIO_ACCESS_KEY=minioadmin" \
-e "MINIO_SECRET_KEY=minioadmin" \
-v /Users/your_dir/DockerMount/minio/data:/data \
-v /Users/your_dir/DockerMount/minio/config:/root/.minio \
minio/minio server \
/data --console-address ":9090" -address ":9000"
-2.2 下面内容是对命令做出相关解释
docker run -p 9000:9000 -p 9090:9090 \ # 映射端口,9000是服务接口,9099是管理客户端借口
--name minio \ # 容器命名为 minio
-d --restart=always \ # docker运行时就启动该容器
-e "MINIO_ACCESS_KEY=minioadmin" \ # 管理端登陆用户
-e "MINIO_SECRET_KEY=minioadmin" \ # 管理端登陆密码
-v /Users/your_dir/DockerMount/minio/data:/data \ # docker宿主机与容器文件挂载,此处是 minio中data数据挂载目录
-v /Users/your_dir/DockerMount/minio/config:/root/.minio \ # docker宿主机与容器文件挂载,此处是minio中配置文件挂载目录
minio/minio server \ # 指定 minio/minio 这个镜像
/data --console-address ":9090" -address ":9000" # 指定查看端口和服务端口
-2.3 查看minio管理界面: http://localhost:9090/
\n
#-1.Docker在Centos7下的配置文件存放位置
# docker.service文件存放位置
/etc/systemd/system/docker.service
# daemon.json配置文件存放位置
/etc/docker/daemon.json
{
"registry-mirrors":["https://6kx4zyno.mirror.aliyuncs.com"],
"data-root":"/home/data/lib/docker/docker"
}
# 查看docker的根目录
docker info | grep "Docker Root Dir"
# 之前的data-root是存放在/var/lib/docker目录下,因/下分配的容量较小,
# 于是才有daemon.json配置为 /home/data/lib/docker/docker目录
#0.Docker logs查看容器日志内容
# docker logs 指定容器
# --tail 1000 展示最后1000条 tail 尾巴/末尾
# -f 动态展示
docker logs containerId/容器id/別名 --tail 1000 -f
# 查看容器相关配置信息 ip 端口 挂载目录等等
# inspect 检查; 查看; 审视; 视察;
docker inspect 容器id/唯一Id/别名
#1.Docker启动命令介绍
例:docker run -d --name myredis -p 6379:6379 redis
例:docker run -d --name myredis -p 6379:6379 redis
命令解析:
run:运行容器
-d:表示后台运行,守护进程
--name [myredis]:自定义一个名称 //[中括号内的是自己写,且命令里面没有中括号]
-p 6379:6379 容器里面的端口映射到外部电脑的端口
docker stop 容器id //停止容器
docker start 容器id //运行容器
docker exec -it mysql-name bash //docker容器中进入mysql内
mysql -h localhost -uroot -p //登录mysql,回车后输入密码
#2.Docker中启动/进入Redis
// #1.docker搜索redis
docker search redis
// #2.docker拉取redis
docker pull redis
// #3.Docker容器中启动redis
docker run -d --name myredis -p 6379:6379 redis
// #4.docker容器启动后进入redis
docker exec -it myredis redis-cli
#3.Docker中启动ElasticSearch-kibana
Docker中启动ElasticSearch-kibana
查看下面连接理解详细内容:
https://blog.csdn.net/CsbLanca/article/details/102517810
es引擎端口 127.0.0.1:9200
kibana管理界面 127.0.0.1:5601
docker run -d --name myes_kibana -p 9200:9200 -p 5601:5601 nshou/elasticsearch-kibana
#4.Docker中启动RabbitMQ
15672:消息队列管理界面
管理页面,localhost:15672
#1.拉取最新版本的镜像
docker pull rabbitmq
#2.启动服务
docker run -d --name rabbitmq -p 15672:15672 -p 5672:5672 rabbitmq
#3.启动管理插件
docker exec -it rabbitmq rabbitmq-plugins enable rabbitmq_management
#4.重启rabbitmq服务
docker restart rabbitmq
#5.Docker中启动/进入MongoDB
Docker容器中启动MongoDB数据库
docker run -d --name mymongodb -p 27017:27017 mongo
进入MongoDB
docker exec -it f144ec940b5c mongo
f144ec940b5c表示容器id
docker exec -it f144ec940b5c mongo
#6.Docker中安装fastdfs
1.拉取镜像
docker image pull delron/fastdfs
2.运行tracker
docker run -dti --network=host --name tracker -v /var/fdfs/tracker:/var/fdfs delron/fastdfs tracker
3.运行storage
docker run -dti --network=host --name storage -e TRACKER_SERVER=23.105.194.11:22122 -v /var/fdfs/storage:/var/fdfs delron/fastdfs storage
4.验证安装
docker container ls --all
当track和storage都成功运行时,你会看到以下界面:
注意:如果无法重新运行,可以删除/var/fdfs/storage/data目录下的fdfs_storaged.pid 文件,然后重新运行storage, 注意这个pid文件十分重要!!
至此,fastdfs 安装完成.
7.Docker中安装Mysql容器
命令代码:
//#1.搜索镜像
docker search mysql
//#2.拉取镜像
docker pull docker.io/mysql
//#3.创建并运行容器
docker run -d -p 3306:3306 --name mymysql -e MYSQL_ROOT_PASSWORD=root docker.io/mysql:latest
// MYSQL_ROOT_PASSWORD=root设置密码为root
//#4.docker进入mysql容器内
docker exec -it 7681b85e73a1 /bin/sh
docker exec -it 7681b85e73a1 bash
# docker exec -it 23f78c180ebf bash
# docker exec -it [容器ID] bash
# docker exec -it [容器ID] /bin/bash
# docker exec -it [容器ID] /bin/sh
8.Mac系统Docker容器下启动运行SqlServer数据库
命令代码
// #1.搜索mssql镜像
docker search mssql
// #2.拉去对应的镜像
docker pull microsoft/mssql-server-linux
// #3.启动运行镜像容器
docker run --name MSSQL_1433 -m 512m -e 'ACCEPT_EULA=Y' -e 'SA_PASSWORD=Qwe!@#123' -p 1433:1433 -d microsoft/mssql-server-linux
// #4.登录容器
docker exec -it MSSQL_1433 /bin/bash
// #5.连接到sqlcmd
/opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P 'Qwe!@#123'
// #6.经测试,
密码sa/SA 大小写都ok,密码'Qwe!@#123'
9.Docker构建自己的镜像
9.1通过Dockerfile文件的方式构建镜像
编写Dockerfile文件
From java:8
MAINTAINER meihongliang
ADD tree-core-0.0.1.jar app.jar
EXPOSE 8080
ENTRYPOINT ["java","-jar","/app.jar"]
dockerfile文件中的相关命令,请自行查阅其他资料
参考博客,点击这里
构建命令:
docker build [OPTIONS] PATH | URL | -
OPTIONS有很多指令,下面列举几个常用的:
--build-arg=[] :设置镜像创建时的变量;
-f :指定要使用的Dockerfile路径;
--force-rm :设置镜像过程中删除中间容器;
--rm :设置镜像成功后删除中间容器;
--tag, -t: 镜像的名字及标签,通常 name:tag 或者 name 格式;
9.1.1Dockerfile文件与相关文件/jar在同一目录/文件夹下的构建命令
docker build -t nginx:v1.0 .
注意:nginx:v1.0 后面有个空格,空格后有个点(.),是必须得加上的
9.1.2Dockerfile文件与相关文件/jar不再同一目录下的构建命令
docker build -f /var/nginx_build/Dockerfile .