docker的一些启动命令
目录
docker启动命令
0、通用命令
- 批量启动:docker start xxx xxx (容器的唯一标识前三位,注意空格)
- 设置为开机自启动: docker update xxx --restart=always
1、mysql
docker run -p 3306:3306 --name mysql \
-v /mydata/mysql/log/var/log:/var/log/mysql_gulimall \
-v /mydata/mysql/data:/var/lib/mysql \
-v /mydata/mysql/config:/etc/mysql \
-e MYSQL_ROOT_PASSWORD=root \
-d mysql:5.7
### 将docker中的mysql配置映射到linux中的对应位置,这样每次修改就不需要加入docker中的mysql了
### 进入 /mydata/mysql,添加mysql配置
vim my.conf
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
[mysqld]
init_connect='SET collation_connection=utf8_unicode_ci'
init_connect='SET NAMES utf8'
character-set-server=utf8
collation-server=utf8_unicode_ci
skip-character-set-client-handshake
skip-name-resolve #解决mysql连接慢,跳过域名解析
2、redis
mkdir -p /mydata/redis/conf
touch /mydata/redis/conf/redis.conf
docker run -p 6379:6379 --name redis \
-v /mydata/redis/data:/data \
-v /mydata/redis/conf/redis.conf:/etc/redis/redis.conf \
-d redis redis-server /etc/redis/redis.conf
## 修改redis.conf 添加aof配置,使得redis重启后数据不会丢失(备份的一种)
vim redis.conf
appendonly yes
## 进入redis客户端 测试redis是否可用
docker exec -it redis redis-cli
3、nacos
docker run -d -p 8848:8848 -e MODE=standalone
-v /opt/nacos/init.d/custom.properties:/home/nacos/init.d/custom.properties -v /opt/nacos/logs:/home/nacos/logs --restart always --name nacos
4、elasticsearch
1)、下载镜像文件
-
docker pull elasticsearch:7.4.2 #(存储和检索数据) docker pull kibana:7.4.2 #(可视化检索数据)
2)、创建实例
一)、Elasticsearch
-
mkdir -p /mydata/elasticsearch/config #存放ES配置 mkdir -p /mydata/elasticsearch/data #存放ES数据 chmod -R 777 /mydata/elasticsearch #修改权限 echo "http.host: 0.0.0.0">>/mydata/elasticsearch/config/elasticsearch.yml #将可远程访问写入配置文件
-
# 9200是我们向es发请求的http端口,9300是es集群节点之间的通信端口 docker run --name es -p 9200:9200 -p 9300:9300 \ -e "discovery.type=single-node" \ #单节点设置 -e ES_JAVA_OPTS="-Xms64m -Xmx128m" \ #### 挂载### -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
进入es内部
docker exec -it xxx(id前几位) /bin/bash
```
访问 http://xxx:9200 看看有没有es的信息
二)、kibana
docker run --name kibana -e ELASTICSEARCH_HOSTS=http://101.200.53.195:9200 -p 5601:5601 -d kibana:7.4.2
访问:http://101.200.53.195:5601/
三)、安装es插件
- 安装 ik分词器插件
- https://github.com/medcl/elasticsearch-analysis-ik 对应es版本下载
- 解压到 ik文件夹再放入 es 挂载的 /mydata/elasticsearch/plugin 目录下
- 进入到 es 容器,到 bin 目录下 ,执行
elasticsearch-plugin list
,查看插件 - 重启 es 容器
四)、创建自定义词库
-
在nginx的html目录下新建es文件夹新建txt文件,录入单词,保存访问ip:80/es/xxx.txt
-
进入plugins/elasticsearch-analysis-ik-7.4.2/config目录修改
IKAnalyzer.cfg.xml
文件在扩展字典那里写上各个的访问路径
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd"> <properties> <comment>IK Analyzer 扩展配置</comment> <!--用户可以在这里配置自己的扩展字典 --> <entry key="ext_dict"></entry> <!--用户可以在这里配置自己的扩展停止词字典--> <entry key="ext_stopwords"></entry> <!--用户可以在这里配置远程扩展字典 --> <entry key="remote_ext_dict">http://你的ip/es/participle.txt</entry> <!--用户可以在这里配置远程扩展停止词字典--> <!-- <entry key="remote_ext_stopwords">words_location</entry> --> </properties>
-
重启
5)、nginx
安装nginx
# 随便启动一个nginx实例
docker run -p 80:80 --name nginx -d nginx:1.10
# 到/mydata/nginx下把容器内配置文件复制出来,(后面有个 空格+. )
docker container cp nginx:/etc/nginx .
# 停止、删除这个容器
# 把配置放到conf目录再转移到nginx目录下
mv nginx conf
mkdir nginx
mv conf 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
#测试是否启动成功
cd html
vi index.html
#写入
<h1>hahahha~~~~~</h1>
#保存退出,访问80端口
6)、RabbitMQ
docker run -d --name rabbitmq -p 5671:5671 -p 5672:5672 -p 4369:4396 -p 25672:25672 -p 15671:15671 -p 15672:15672 rabbitmq:management
4369,25672(Erlang发现&集群端口)
5672,5671(AMQP端口)
15672(web管理后台端口)
61613,61614(STOMP协议端口)
1883,8883(MQTT协议端口)
https://www.rabbitmq.com/networking.html