Docker容器快速部署配置大全

基本配置信息

  • 阿里云镜像加速器: https://9p7fv5mn.mirror.aliyuncs.com

  • Kibana管理页面: http://192.168.145.128:5601/app/kibana

  • 检测ElasticSearch是否启动成功: http://192.168.145.128:9200/

  • 我的虚拟机IP地址: 192.168.145.137

  • 查看已启动的服务: systemctl list-units --type=service

  • 查看是否设置开机启动: systemctl list-unit-files | grep docker

  • Docker开机自启动: systemctl enable docker.service | systemctl disable docker.service

  • Docker容器开机自启动: docker update --restart=always 容器名称

  • 容器启动时加入参数自启动: docker run 带参数 --restart=always

  • 文中的主机全部代指Linux主机,不是电脑本机

基础环境部署

设置镜像地址

vim /etc/docker/daemon.json

输入一下内容

{
	"registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"]
}

对容器进行操作

进入容器里进行操作

docker exec -it 容器名称 (或者容器ID)  /bin/bash

Docker基本指令操作

镜像操作

  • 如果已经启动的项目,则使用update更新: docker update --restart=always 容器id或name
  • 拉去镜像:docker pull 镜像名称
  • 删除镜像:docker rmi 镜像名称
  • 容器自启动:docker update --restart=always 容器ID
  • 容器暂停:docker stop 容器ID
  • 容器删除:docker rm 容器ID
  • 容器重启:docker restart 容器ID
  • 强制关闭容器:docker kill 容器ID
  • 设置docker开机启动:systemctl enable docker.service

Docker操作

  • 启动docker服务: systemctl start docker

  • 暂停docker服务: systemctl stop docker

  • 重启docker服务: systemctl restart docker

  • 查看docker状态: systemctl status docker

  • 设置docker开机启动: systemctl enable docker

  • 查看docker概要信息: docker info

  • 查看docker帮助信息: docker ‐‐help

  • 开启docker 服务开机自启动命令: systemctl enable docker.service

  • 关闭docker 服务开机自启动命令:systemctl disable docker.service

MySQL

拉取镜像

MySQL5.7

docker pull mysql:5.7

MySQL8.0

docker pull mysql:8.0

直接引用MySQL5.7

docker run -p 3306:3306 --name mysql5.7 \
-v /mydata/mysql/log:/var/log/mysql \
-v /mydata/mysql/data:/var/lib/mysql \
-v /mydata/mysql/conf:/etc/mysql \
-e MYSQL_ROOT_PASSWORD=root -d mysql:5.7

直接引用MySQL8.0

docker run -p 3306:3306 --name mysql8 \
-v /mydata/mysql/log:/var/log/mysql \
-v /mydata/mysql/data:/var/lib/mysql \
-v /mydata/mysql/conf:/etc/mysql/conf.d \
-e MYSQL_ROOT_PASSWORD=root -d mysql:8.0
  • 设置开启自启动:
docker update mysql --restart=always

参数解析

docker run 
-p 3306:3306 #将容器的端口映射到主机(第一个是主机的端口号,第二个是容器的端口号)
--name mysql8 #设置docker容器的名字
-v /mydata/mysql/log:/var/log/mysql #将日志文件挂载到主机,日志文件映射
-v /mydata/mysql/data:/var/lib/mysql #将数据库数据挂载到主机,数据库数据映射(持久化设置)
-v /mydata/mysql/conf:/etc/mysql/conf.d #将数据库配置文件挂载到主机,配置文件映射
-e MYSQL_ROOT_PASSWORD=root #设置root数据库的初始密码
-d mysql:8.0 #使用数据库的版本

Tomcat

拉取镜像

docker pull tomcat

直接引用

docker run --name tomcat -p 8080:8080 -v /mydata/tomcat/webapps:/usr/local/tomcat/webapps -d tomcat

参数解析

docker run --name tomcat #设置docker容器的名字
-p 8080:8080  #端口号映射
-v /mydata/tomcat/webapps:/usr/local/tomcat/webapps  #部署web的目录映射
-d tomcat  #使用tomcat的版本

Nginx

拉取镜像

docker pull nginx:1.10

前置操作:

  • 随便启动一个nginx实例,只是为了复制出配置
docker run -p 80:80 --name nginx -d nginx:1.10
  • 将容器内的配置文件拷贝到/mydata/nginx/conf/ 下
#创建文件夹操作
mkdir -p /mydata/nginx/html 
mkdir -p /mydata/nginx/logs 
mkdir -p /mydata/nginx/conf 

#拷贝到当前文件夹,拷贝到conf目录下,好结合下面的mv操作,注意有小数点"."
docker container cp nginx:/etc/nginx . 

#由于拷贝完成后会在config中存在一个nginx文件夹,所以需要将它的内容移动到conf中
#最终步骤就是把容器中的配置复制到conf目录下
mv /mydata/nginx/conf/nginx/* /mydata/nginx/conf/

#删除nginx文件夹
rm -rf /mydata/nginx/conf/nginx 
  • 最终结果需要这样:

  • 终止原容器:
docker stop nginx
  • 删除容器
docker rm nginx
  • 创建真正使用的Nginx
docker run -p 80:80 --name nginx \
-v /mydata/nginx/html:/usr/share/nginx/html \
-v /mydata/nginx/logs:/var/log/nginx \
-v /mydata/nginx/conf/:/etc/nginx \
-d nginx:1.10
  • 设置开机启动Nginx
docker update nginx --restart=always
  • 测试:创建“/mydata/nginx/html/index.html”文件,测试是否能够正常访问
echo '<h2>hello nginx!</h2>' >/mydata/nginx/html/index.html

直接引用

启动容器

docker run -p 80:80 --name nginx \
-v /mydata/nginx/html:/usr/share/nginx/html \
-v /mydata/nginx/logs:/var/log/nginx \
-v /mydata/nginx/conf/:/etc/nginx \
-d nginx:1.10

参数解析

docker run -p 80:80 --name nginx #容器名
-v /mydata/nginx/html:/usr/share/nginx/html #挂载html到主机
-v /mydata/nginx/logs:/var/log/nginx #挂载logs日志到主机
-v /mydata/nginx/conf/:/etc/nginx #挂载nginx配置到主机
-d nginx:1.10 #设置容器镜像版本

反向代理的原理:
在这里插入图片描述

配置图

在这里插入图片描述

Redis

拉取镜像

docker pull redis

前置操作:完成后使用直接引用代码

#创建主机的redis配置文件夹
mkdir -p /mydata/redis/conf
#创建主机的redis配置文件
touch /mydata/redis.conf/redis.conf

直接引用

docker run --name redis \
-p 6379:6379 \
-v /mydata/redis/data:/data \
-v /mydata/redis/conf/redis.conf:/etc/redis/redis.conf \
-d redis redis-server /etc/redis/redis.conf \
--appendonly yes

参数解析

docker run --name redis #设置容器名
-p 6379:6379 #端口映射
-v /mydata/redis/data:/data #挂载redis的数据到主机
-v /mydata/redis/conf/redis.conf:/etc/redis/redis.conf #挂载redis的配置文件到主机
-d redis redis-server #启动服务,容器镜像
/etc/redis/redis.conf --appendonly yes #往容器中的配置文件追加配置信息,设置redis的持久化存储方式

Elasticsearch7.4.2

拉取镜像

docker pull elasticsearch:7.4.2

前置操作:完成这三部才输入直接引用代码

#创建文件夹
mkdir -p /mydata/elasticsearch/config

mkdir -p /mydata/elasticsearch/data

#创建文件,并往配置文件写值
echo "http.host: 0.0.0.0" >> /mydata/elasticsearch/config/elasticsearch.yml

#因为容器报 AccessDeniedException异常 所以要修改权限
chmod -R 777 /mydata/elasticsearch/

直接引用

docker run --name elasticsearch \
-p 9200:9200 -p 9300:9300 \
-e "discovery.type=single-node" \
-e ES_JAVA_OPTS="-Xms64m -Xmx512m" \
-v /mydata/elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml \
-v /mydata/elasticsearch/data:/usr/share/elasticsearch/data \
-v /mydata/elasticsearch/plugins:/usr/share/elasticsearch/plugins \
-d elasticsearch:7.4.2

参数解析

docker run --name elasticsearch #容器名称
-p 9200:9200 #发送http请求给9200端口发送,restAPI往这个端口发送请求
-p 9300:9300 #这个端口是es在分布式集群状态下它们节点间的通信端口
-e "discovery.type=single-node" #设置单节点运行
-e ES_JAVA_OPTS="-Xms64m -Xmx512m" #如果不设置,es会占用全部内存
-v /mydata/elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml #挂载elasticsearch.yml文件到主机
-v /mydata/elasticsearch/data:/usr/share/elasticsearch/data #挂载es的数据到主机
-v /mydata/elasticsearch/plugins:/usr/share/elasticsearch/plugins #挂载es的插件到主机
-d elasticsearch:7.4.2 #容器镜像

Kibana7.4.2

拉取镜像

docker pull kibana:7.4.2

直接引用

docker run --name kibana \
-e ELASTICSEARCH_HOSTS=http://192.168.0.166:9200 \
-p 5601:5601 \
-d kibana:7.4.2

参数解析

docker run 
--name kibana #容器名称
-e ELASTICSEARCH_HOSTS=http://192.168.0.166:9200 #自己的虚拟机ip地址,映射到主机
-p 5601:5601 #端口映射
-d kibana:7.4.2 #容器镜像

RabbitMQ

拉取镜像

docker pull rabbitmq:management

直接引用

docker run -d --name rabbit \
--hostname my-rabbit \
-p 15672:15672 -p 5672:5672 \
-e RABBITMQ_DEFAULT_USER=center \
-e RABBITMQ_DEFAULT_PASS=123qwe \
-e RABBITMQ_DEFAULT_VHOST=center \
rabbitmq:management

参数解析

docker run -d --hostname my-rabbit --name rabbit #hostname和容器名设置
-p 15672:15672 #web端映射地址
-p 5672:5672 #restAPI请求地址
-e RABBITMQ_DEFAULT_USER=center #设置rabbitmq用户名
-e RABBITMQ_DEFAULT_PASS=123qwe #设置rabbitmq密码
-e RABBITMQ_DEFAULT_VHOST=center #设置rabbitmq的vhost
rabbitmq:management #设置容器版本
  • 账户:center

  • 密码:123qwe

  • v-host: center

  • 15672:控制台端口号

  • 5672:应用访问端口号

  • 管理web 的端口:http://ip:15672

附录:Ubuntu的安装方式

第一种方法:从Ubuntu的仓库直接下载安装:

安装比较简单,这种安装的Docker不是最新版本,不过对于学习够用了,依次执行下面命令进行安装。
 
$ sudo apt install docker.io
$ sudo systemctl start docker
$ sudo systemctl enable docker
查看是否安装成功
 
$ docker -v
Docker version 17.12.1-ce, build 7390fc6

第二种方法:从Docker仓库下载安装:

这种安装方式首先要保证Ubuntu服务器能够访问Docker仓库地址:
https://download.docker.com/linux/ubuntu,如果能够访问,按照下面的操作步骤进行安装。
 
1.由于apt官方库里的docker版本可能比较旧,所以先卸载可能存在的旧版本:
sudo apt-get remove docker docker-engine docker-ce docker.io
 
2、更新apt包索引
sudo apt update
 
3、安装下载包,可以使apt可以通过HTTPS使用存储库(repository)
sudo apt install apt-transport-https ca-certificates curl software-properties-common
 
4、添加Docker官方的GPG密钥
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
 
5.在/etc/apt/sources.list.d/docker.list文件中添加下面内容
deb [arch=amd64] https://download.docker.com/linux/ubuntu bionic stable
也可以选以下命令方式来设置stable存储库
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"

6.再更新一下apt包索引
sudo apt update

7.安装docker-ce
sudo apt install docker-ce
 
8.查看是否安装成功:
docker –version
------------------
提示:当docker 无法卸载的时候,可以试试以下命令(原因:docker下载的数据源比较对,版本也多,所以很难卸载干净)
1. sudo docker -v  
2. sudo apt-get remove docker  
3. sudo apt-get remove --auto-remove docker  
4. sudo apt-get remove --purge lxc-docker  
5. sudo apt-get autoremove --purge

原文地址:http://www.cnblogs.com/zjh-y2000/p/16860341.html

1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长! 2. 分享目的仅供大家学习和交流,请务用于商业用途! 3. 如果你也有好源码或者教程,可以到用户中心发布,分享有积分奖励和额外收入! 4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解! 5. 如有链接无法下载、失效或广告,请联系管理员处理! 6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需! 7. 如遇到加密压缩包,默认解压密码为"gltf",如遇到无法解压的请联系管理员! 8. 因为资源和程序源码均为可复制品,所以不支持任何理由的退款兑现,请斟酌后支付下载 声明:如果标题没有注明"已测试"或者"测试可用"等字样的资源源码均未经过站长测试.特别注意没有标注的源码不保证任何可用性