安装Docker
# 卸载旧版本
sudo apt-get remove docker docker-engine docker.io containerd runc
# 更新软件包
sudo apt-get update
sudo apt install apt-transport-https ca-certificates software-properties-common
# 添加GPG密钥,增加镜像源
curl -fsSL https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository "deb [arch=amd64] https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu $(lsb_release -cs) stable"
# 校验添加密钥是否成功并重新更新软件包
sudo apt-key fingerprint 0EBFCD88
# 安装docker-ce
sudo apt-get install docker-ce docker-ce-cli containerd.io
# 测试运行
sudo docker run hello-world
# Docker 的基本命令
# 查看全部镜像
docker images | docker image ls
# 查看结果
REPOSITORY(仓库名) TAG(标志/版本) IMAGE ID(镜像ID) CREATED(镜像在仓库中的创建时间) SIZE(镜像大小)
elasticsearch 7.11.2 a6cbb6bace0e 12 days ago 824MB
kibana 7.11.2 59ddc19818fe 12 days ago 1.01GB
rabbitmq 3.8-management ee045987e252 12 days ago 187MB
# 查看在线/全部的容器,format格式化指定展示列名
docker ps / docker ps -a --format "table{{.ID}}\t{{.Names}}\t{{.Status}}"
# 查看结果
CONTAINER ID(容器ID) IMAGE(所使用的镜像ID) COMMAND(备注) CREATED(容器创建时间) STATUS(在线状态) PORTS(端口映射) NAMES(容器名称)
44a5d4435102 a617c1c92774 "docker-entrypoint.s…" 50 minutes ago Up 50 minutes 0.0.0.0:6379->6379/tcp redis
990e476eedcf rabbitmq:3.8-management "docker-entrypoint.s…" 17 hours ago Up 17 hours * rabbitmq
# 在公共docker仓库搜索指定镜像
docker search redis
# 查看结果
NAME DESCRIPTION STARS OFFICIAL(官方) AUTOMATED(自动化)
redis Redis is an open… 9223 [OK]
bitnami/redis Bitnami Redis Docker Image 176 [OK]
# 拉取镜像, 不指定tag默认tag=lastest
docker pull {imageName}:{tag}
# 创建容器,-m指定内存 --memory-swap指定交换区内存大小
docker run -d --name {customName} -p {hostPort}:{containerPort} {image} [-m 1G --memory-swap 1G]
# 停止一个正在运行的容器
docker stop {container}
# 启动一个停止的容器
docker start {container}
# 删除一个容器
docker rm {containerId}
# 删除一个镜像
docker rmi {imageId}
# 交互模式进入一个容器
docker exec -it {container} /bin/bash
# 修改启动配置
docker update --restart always {containerId}
# 修改内存为1G/交换内存不限制大小
docker update -m 1G --memory-swap -1 {containerId}
# 修改cpu的数量
docker update --cpus 2 {containerId}
安装MySQL
# 拉取镜像
docker pull mysql:5.7.33
# 根据mysql镜像创建容器,并指定端口映射和root的密码(下面命令会拉取最新版本)
docker run -itd --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=[password] mysql
# 启动
docker start mysql
安装Redis
# 拉取镜像
docker pull redis:6.2.1
# 根据redis镜像创建容器,并指定端口映射和root的密码
docker run -itd --name redis -p 6379:6379 redis --requirepass [password]
# 启动
docker start redis
安装RabbitMQ
# 拉取镜像
docker pull docker.io/rabbitmq
# 根据redis镜像创建容器
docker run -d --name rabbitmq -p 15672:15672 -p 5672:5672 rabbitmq
# 启动
docker start rabbitmq
# 交互模式进入容器
docker exec -it rabbitmq /bin/bash
# 开启可视化插件
rabbitmq-plugins enable rabbitmq_management
# 安装延时插件
访问:https://www.rabbitmq.com/community-plugins.html
找到 rabbitmq_rtopic_exchange 下载至服务器指定目录,进入到插件下载的目录,使用如下命令复制到 docker 容器中:
cd /usr/etc/rabbitmq_plugins
docker cp rabbitmq_delayed_message_exchange-3.8.0.ez rabbitmq:/plugins
# 启用插件
rabbitmq-plugins enable rabbitmq_delayed_message_exchange
# 重启
docker restart rabbitmq
# 登录地址ip:15672设置账户和密码,初始默认账户/密码:guest/guest
# rabbit 延时插件详细集成步骤即代码请参考:https://www.jianshu.com/p/e5a42efb9198
安装Nexus3
# 拉取镜像
docker pull sonatype/nexus3
# 根据nexus3镜像创建容器, -v指定保存文件的宿主机目录和容器目录
docker run -id --privileged=true --name=nexus3 --restart=always -p 8081:8081 -v /user/nexus3/nexus-data:/var/nexus-data nexus3
# 启动
docker start nexus3
# 详细账户配置可在网页ip:8081上自行设置,默认账户/密码:admin/admin123
安装ElasticSearch
官方安装文档
# 拉取镜像
docker pull docker.elastic.co/elasticsearch/elasticsearch:7.11.2
# 安装容器
docker run --name elasticsearch -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" docker.elastic.co/elasticsearch/elasticsearch:7.11.2
# 启动
docker start elasticsearch
# 进入交互模式
docker exec -it elasticsearch /bin/bash
# 安装分词器
cd plugins
install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v6.3.0/elasticsearch-analysis-ik-7.11.2.zip
# 设置账户安全(此步骤后所有的 -curl请求都需要带上账户和密码,账户名默认 elastic,密码为设置的密码)
cd config
vi elasticsearch.yml #添加 xpack.security.enabled: true #保存退出编辑模式
cd bin
elasticsearch-setup-passwords interactive #此操作后会提示依次输入各种密码
# 重启
docker restart elasticsearch
# 测试
服务端输入命令:curl http://elastic:[设置的密码,特殊字符转换成十六进制]@ip:9200?pretty
或浏览器直接输入:ip:9200?pretty
安装Kibana
官方安装文档
# 拉去镜像,和es保持同版本
docker pull docker.elastic.co/kibana/kibana:7.11.2
# 创建容器并连接至es; es的默认节点名称就是 elasticsearch
docker run -itd --name kibana --link elasticsearch:elasticsearch -p 5601:5601 docker.elastic.co/kibana/kibana:7.11.2
# 启动
docker restart kibana
# 如果提示因为密码不正确导致连接错误
docker exec -it kibana /bin/bash
cd config
vi kibana.yml
#添加
elasticsearch.username: elastic
elasticsearch.password: your password
# !!! 如果因为错误无法启动从而无法进入交互模式,可以将配置挂载至宿主机中
mkdir /opt/kibana/
docker run --name tempKibana -p 5601:5601 -d docker.elastic.co/kibana/kibana:7.11.2
docker cp tempKibana:/usr/share/kibana/config /opt/kibana/
chmod 777 /opt/kibana/config/*
docker rm -f tempKibana
# 编辑配置增加上述密码
vi kibana.yml
docker run -d --name kibana -p 5601:5601 -v /opt/kibana/config:/usr/share/kibana/config docker.elastic.co/kibana/kibana:7.11.2