【Docker】容器快速部署配置大全

Docker容器快速部署配置大全

typroa 主题推荐:

  • Orangeheart:喜欢这个字体和标题样式,字体有一点点小,颜色还不错,代码颜色一般
  • Drake:喜欢这个的加粗的字体新颖,缺点字体小,代码颜色一般
  • Drake lamh77:和上面比字体变大了,加粗普通,代码颜色一般
  • Techo:字体好看,其他一般
  • Vue dark: vue的夜景模式
  • Vue:部分字体一般,其他都还可以

一、基本配置信息

  • 阿里云镜像加速器: 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主机,不是电脑本机

二、基础环境部署

1.设置镜像地址

vim /etc/docker/daemon.json

输入一下内容

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

三、对容器进行操作

进入容器里进行操作

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

四、Docker基本指令操作

1.镜像操作

  • 如果已经启动的项目,则使用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

2.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

1.拉取镜像

1.1 MySQL5.7
docker pull mysql:5.7
1.2 MySQL8.0
docker pull mysql:8.0

2.直接引用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

3.直接引用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

4.参数解析

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

1.拉取镜像

docker pull tomcat

2.直接引用

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

3.参数解析

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

七、Nginx

1.拉取镜像

docker pull nginx:1.10

2.前置操作:

  • 随便启动一个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

3.直接引用

启动容器

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

4.参数解析

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

1.拉取镜像

docker pull redis

2.前置操作

完成后使用直接引用代码

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

3.直接引用

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

4.参数解析

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

1.拉取镜像

docker pull elasticsearch:7.4.2

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/

3.直接引用

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

4.参数解析

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

1.拉取镜像

docker pull kibana:7.4.2

2.直接引用

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

3.参数解析

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

十一、RabbitMQ

1.拉取镜像

docker pull rabbitmq:management

2.直接引用

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

3.参数解析

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
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

KASAKI11

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值