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插件

  1. 安装 ik分词器插件
    • https://github.com/medcl/elasticsearch-analysis-ik 对应es版本下载
    • 解压到 ik文件夹再放入 es 挂载的 /mydata/elasticsearch/plugin 目录下
    • 进入到 es 容器,到 bin 目录下 ,执行elasticsearch-plugin list,查看插件
    • 重启 es 容器

四)、创建自定义词库

  1. 在nginx的html目录下新建es文件夹新建txt文件,录入单词,保存访问ip:80/es/xxx.txt

  2. 进入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>
    
  3. 重启

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

posted @ 2020-05-25 20:30  qiuqiup  阅读(1169)  评论(0)    收藏  举报