小白也能玩转Docker:应用部署、迁移与备份

news/2024/12/31 0:37:44/

目录

1、应用部署

1.1、Mysql

1.2、Ngixn

1.3、Redis

1.4、RabbitMQ

1.5、Elasticsearch

1.6、Zookeeper

2、迁移与备份

2.1容器保存为镜像

2.2镜像备份

2.3镜像恢复与迁移


1、应用部署

1.1、Mysql

拉取mysql的镜像:

docker pull mysql:5.7

为mysql镜像创建一个容器(守护进程方式创建):

docker run -di --name=mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD mysql:5.7
b84fbf3413b82e47cb0ba1077d968e9901cbc1af9f16bc6258a219a206b7be28

进入mysql容器中

docker exec -it  mysql  /bin/bash

在容器中登录本地的mysql数据库:

mysql  -uroot -proot --default-character-set=utf8

在mysql容器中就可以尝试查看本地的数据库了

mysql> show datebase;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'datebase' at line 1
#由于我还没有在电脑上安装mysql软件,所以会出错,如果安装了软件就会正常显示本地的所有数据库

1.2、Nginx

拉取nginx镜像:

docker pull nginx

然后为该镜像创建容器(守护方式进行):

docker run -di --name=nginx -p 80:80 nginx
f7953fa240230b45200e2d8ec745603a88b702326891c811ba4e046159951279

尝试在浏览器访问:

使用拷贝的方式将容器中的nginx文件复制到宿主机目录中:

docker cp nginx:/etc/nginx /usr/local/mydata/nginx
#复制nginx容器下的nginx文件到宿主机某个文件下面
Successfully copied 16.9kB to /usr/local/mydata/nginx

在宿主机的对应目录中将nginx目录重命名为conf,即配置文件:

mv nginx conf

创建另外一个bginx目录并且设置挂载目录:

docker run -id --name=nginx2 -p 80:80 -v /usr/local/mydata/conf/:/etc/nginx nginx
#创爱了一个nginx2容器 并且 -v 表示映射关系,:前为宿主机目录 :后为容器目录(作用是在宿主机上做修改,会共享到容器)
6e476663c6cd32e3c960537cbb08e6c0bf080b8c1eb3841b84851f8b981ed68c

1.3、Redis

拉取Redis镜像:

docker pull redis

创建redis容器:

docker run -id --name=redis   -p 6379:6379  redis
2a928412d5ca55c9f8ae0ead8bb87fa1e1c14bd462ea2bbdf5dea9aad4be30ed

1.4、RabbitMQ

拉取rabbitmq镜像:

docker pull rabbitmq:3.7.12

根据镜像创建容器:

docker run -id --name=rabbitmq -p 5672:5672 -p 4369:4369 -p 25672:25672 -p 15671:15671 -p 15672:15672 rabbitmq:3.7.12
3529015ab8913520462e4c90b7e898cd66f8d9286ed28b08be889b68f12f527d

进入rabbitmq容器:

docker exec -it rabbitmq /bin/bash

安装rabbitmq插件:

root@3529015ab891:/# rabbitmq-plugins enable rabbitmq_management
Enabling plugins on node rabbit@3529015ab891:
rabbitmq_management
The following plugins have been configured:rabbitmq_managementrabbitmq_management_agentrabbitmq_web_dispatch
Applying plugin configuration to rabbit@3529015ab891...
The following plugins have been enabled:rabbitmq_managementrabbitmq_management_agentrabbitmq_web_dispatch
started 3 plugins.
尝试在浏览器中访问:

1.5、Elasticsearch

拉取Elasticsearch镜像:

docker pull elasticsearch:7.5.0

修改虚拟内存大小:

sysctl -w vm.max_map_count=262144
vm.max_map_count = 262144

创建容器:

docker run -id --name=elasticsearch -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" -e "cluster.name=elasticsearch" -v /usr/local/mydata/elasticsearch/plugins:/usr/share/elasticsearch/plugins elasticsearch:7.5.0 
cedc54bf1fe694523519c5bbf325223734c37765bae2a6aeb5cb31f79e9db7c9

进入容器中:

docker exec  -it elasticsearch /bin/bash

安装ik中文分词器:

elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/r7.5.0/elasticsearch-analysis-ik-7.5.0.zip

尝试在浏览器中访问:

192.168.159.161:9200

1.6、Zookeeper

拉取Zookeeper镜像:

docker pull zookeeper:3.4.13

创建容器:

docker run -id --name=zookeeper -p 2181:2181 zookeeper:3.4.13
22b12df3645066d545855308b6d77e9bda34b4c290304f18645faac9ba7635e5

2、迁移与备份

2.1容器保存为镜像

我们可以通过以下命令将容器保存为镜像

docker run -id --name=zookeeper -p 2181:2181 zookeeper:3.4.13
22b12df3645066d545855308b6d77e9bda34b4c290304f18645faac9ba7635e5

2.2镜像备份

我们可以通过以下命令将镜像保存为.tar文件

docker save -o myredis.tar myredis

2.3镜像恢复与迁移

首先我们先删除myredis镜像,然后再来执行此命令恢复

删除:
docker stop  redis 
docker rmi redis
Untagged: redis:latest
Untagged: redis@sha256:db485f2e245b5b3329fdc7eff4eb00f913e09d8feb9ca720788059fdc2ed8339
恢复:
docker load -i myredis.tar 
Loaded image: myredis:latest

-i:输入文件

执行后再次查看镜像,可以看到镜像已经恢复


http://www.ppmy.cn/news/485454.html

相关文章

CALYPSO 2018 圆柱触测点最佳拟合圆

“调用元素点”功能支持回叫已定义元素的任何测量点,进行评定。 可以回叫一个或多个元素的独立点,独立路径,特殊范围或所有点。 例:在圆柱上回叫一个截面圆 在元素列表中拖出一个圆元素,打开它,在名义值定…

【比原链】比原启动后去哪里连接别的节点

作者:freewind比原项目仓库:https://github.com/Bytom/bytom最开始我对于这个问题一直有个疑惑:区块链是一个分布式的网络,那么一个节点启动后,它怎么知道去别的节点从而加入网络呢? 看到代码之后,我才明白…

【比原链】比原是如何把请求区块数据的信息发出去的

作者:freewind比原项目仓库:https://github.com/Bytom/bytom在前一篇中,我们说到,当比原向其它节点请求区块数据时,BlockKeeper会发送一个BlockRequestMessage把需要的区块height告诉对方,并把该信息对应的…

剥开比原看代码(二):比原启动后去哪里连接别的节点

作者:freewind 比原项目仓库: Github地址:https://github.com/Bytom/bytom Gitee地址:https://gitee.com/BytomBlockchain/bytom 最开始我对于这个问题一直有个疑惑:区块链是一个分布式的网络,那么一个节点…

剥开比原看代码(六):比原是如何把请求区块数据的信息发出去的

作者:freewind 比原项目仓库: Github地址:https://github.com/Bytom/bytom Gitee地址:https://gitee.com/BytomBlockchain/bytom 在前一篇中,我们说到,当比原向其它节点请求区块数据时,BlockKee…

剥开比原看代码06:比原是如何把请求区块数据的信息发出去的

作者:freewind 比原项目仓库: Github地址:https://github.com/Bytom/bytom Gitee地址:https://gitee.com/BytomBlockchain/bytom 在前一篇中,我们说到,当比原向其它节点请求区块数据时,BlockKee…

vue中使用raphael.js实现地图绘制

一、效果图 二、在vue中引入raphael.js npm i raphael -S 三、封装一个名为StreetMap的组件,代码如下 1 <template>2 <div>3 <div id=streetMap>4 <div class="tips" v-show="tipsShow" :style="tipsStyle"&g…

剥开比原看代码02:比原启动后去哪里连接别的节点

作者&#xff1a;freewind 比原项目仓库&#xff1a; Github地址&#xff1a;https://github.com/Bytom/bytom Gitee地址&#xff1a;https://gitee.com/BytomBlockchain/bytom 比原启动后去哪里连接别的节点 最开始我对于这个问题一直有个疑惑&#xff1a;区块链是一个分布式的…