docker 基本cmd
)
Images
映像是⼀个只读模板,其中包含有关创建 Docker 容器的说明。通常,⼀个映像基于另⼀个映像,并进⾏⼀些额外的⾃定义。例如,您可以构建⼀个基于 ubuntu 映像的映像,但会安装 Apache Web 服务器和您的应⽤程序,以及使应⽤程序运⾏所需的配置详细信息。
Container
容器是映像的可运⾏实例。可以使⽤DockerAPI或CLI创建、启动、停⽌、移动或删除容器。可以将容器连接到⼀个或多个⽹络,将存储附加到该⽹络,甚⾄根据其当前状态创建新映像。
默认情况下,容器之间及其主机的隔离相对较好。也可以控制容器的⽹络、存储或其他底层
⼦系统与其他容器或主机的隔离程度。
容器由其映像以及创建或启动容器时提供的任何配置选项定义。删除容器后,未存储在持久存储中的任何更改状态都将消失。
CMD
Images
| 1 | 查看本地镜像 | 
Containers
| 1 | 查看正在运⾏的容器,不加-l则只列出正在运⾏的container(⽐如后台任务) | 
DockerFile
| 1 | 常⻅Dockerfile指令 | 
Volume
| 1 | 查看Docker数据卷 | 
Network
| 1 | 查看Docker⽹络 | 
Into container
| 1 | docker exec -it <container> /bin/bash | 
docker compose
| 1 | ## 插件或独⽴程序⽅式运⾏ | 
docker container demo
- mysql - 1 
 2
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25- -d:后台运⾏ 
 -p:映射容器3306端⼝到主机3306端⼝
 --name:指定容器名mysql
 -e MYSQL_ROOT_PASSWORD=123456 设置Mysql密码
 docker desktop下
 docker run -d \
 --name mysql \
 -p 13306:3306 \
 -v mysql-conf:/etc/mysql/conf.d \
 -v mysql-data:/var/lib/mysql \
 -v mysql-logs:/var/log/mysql \
 -e MYSQL_ROOT_PASSWORD=13306 \
 mysql:latest
 linux dcoekr 下
 docker run -d \
 --name mysql \
 -p 13306:3306 \
 -v /home/mysql/conf:/etc/mysql/conf.d \
 -v /home/mysql/data:/var/lib/mysql \
 -v /home/mysql/logs:/var/log/mysql \
 -e MYSQL_ROOT_PASSWORD=123456 \
 mysql:latest
- redis - 1 
 2
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27- //---启动容器后执⾏【redis-server /etc/redis/redis.conf --appendonly yes --requirepass 123abc】--// 
 使⽤ /etc/redis/redis.conf配置⽂件启动
 –appendonly yes 开启redis 持久化
 --requirepass 123abc 使⽤认证密码
 docker run --restart=always \
 --log-opt max-size=100m \
 --log-opt max-file=2 \
 -p 6379:6379 \
 --name redis \
 -v /home/redis/myredis/myredis.conf:/etc/redis/redis.conf \
 -v /home/redis/myredis/data:/data \
 -d redis:latest redis-server /etc/redis/redis.conf \
 --appendonly yes \
 --requirepass 123abc
 docker desptop
 docker run --restart=always \
 --log-opt max-size=100m \
 --log-opt max-file=2 \
 -p 6379:6379 \
 --name redis \
 -v redis-conf:/etc/redis/redis.conf \
 -v redis-data:/data \
 -d redis:latest redis-server /etc/redis/redis.conf \
 --appendonly yes \
 --requirepass 123abc
- RabbitMQ - 1 
 2
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34- 拉取镜像 
 docker pull rabbitmq:3.13-management
 -d 参数:后台运行 Docker 容器
 --name 参数:设置容器名称
 -p 参数:映射端口号,格式是“宿主机端口号:容器内端口号”。5672供客户端程序访问,15672供后台管理界面访问
 -v 参数:卷映射目录
 -e 参数:设置容器内的环境变量,这里我们设置了登录RabbitMQ管理后台的默认用户和密码
 docker run -d \
 --name rabbitmq \
 -p 5672:5672 \
 -p 15672:15672 \
 -v rabbitmq-plugin:/plugins \
 -e RABBITMQ_DEFAULT_USER=guest \
 -e RABBITMQ_DEFAULT_PASS=123456 \
 rabbitmq:3.13-management
 延迟队列插件安装 下载
 wget https://github.com/rabbitmq/rabbitmq-delayed-message-exchange/releases/download/v3.13.0/rabbitmq_delayed_message_exchange-3.13.0.ez
 将下载的文件移动到RabbitMQ /plugins目录下
 在下载目录下
 docker mv rabbitmq_delayed_message_exchange-3.13.0.ez /var/lib/docker/volumes/rabbitmq-plugin/_data
 启用插件
 登录进入容器内部
 docker exec -it rabbitmq /bin/bash
 rabbitmq-plugins命令所在目录已经配置到$PATH环境变量中了,可以直接调用
 rabbitmq-plugins enable rabbitmq_delayed_message_exchange
 退出Docker容器
 exit
 重启Docker容器
 docker restart rabbitmq
 如果创建新交换机时可以在type中看到x-delayed-message选项,那就说明插件安装好了
- ElasticSearch - 1 
 2- 创建网络 
 docker network create es-net- 1 
 2
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26- -e "cluster.name=es-docker-cluster":设置集群名称 
 -e "http.host=0.0.0.0":监听的地址,可以外网访问
 -e "ES_JAVA_OPTS=-Xms512m -Xmx512m":内存大小
 -e "discovery.type=single-node":非集群模式
 -v es-data:/usr/share/elasticsearch/data:挂载逻辑卷,绑定es的数据目录
 -v es-logs:/usr/share/elasticsearch/logs:挂载逻辑卷,绑定es的日志目录
 -v es-plugins:/usr/share/elasticsearch/plugins:挂载逻辑卷,绑定es的插件目录
 --privileged:授予逻辑卷访问权
 --network es-net :加入一个名为es-net的网络中
 -p 9200:9200:端口映射配置
 docker run -d \
 --name es \
 -e "ES_JAVA_OPTS=-Xms512m -Xmx512m" \
 -e "discovery.type=single-node" \
 -v es-data:/usr/share/elasticsearch/data \
 -v es-plugins:/usr/share/elasticsearch/plugins \
 -v es-logs:/usr/share/elasticsearch/logs \
 --privileged \
 --network es-net \
 -p 9200:9200 \
 -p 9300:9300 \
 elasticsearch:7.12.1
 查看日志
 docker logs -f es
- Kibana - 1 
 2
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15- --network es-net :加入一个名为es-net的网络中,与elasticsearch在同一个网络中 
 -e ELASTICSEARCH_HOSTS=http://es:9200":
 设置elasticsearch的地址,
 因为kibana已经与elasticsearch在一个网络,因此可以用容器名直接访问elasticsearch
 -p 5601:5601:端口映射配置
 docker run -d \
 --name kibana \
 -e ELASTICSEARCH_HOSTS=http://es:9200 \
 --network=es-net \
 -p 5601:5601 \
 kibana:7.12.1
 查看日志
 docker logs -f kibana
- IK分词器 - 1 
 2
 3
 4
 5
 6
 7
 8
 9
 10
 11- 在线安装 
 docker exec -it es ./bin/elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.12.1/elasticsearch-analysis-ik-7.12.1.zip
 重启
 docker restart es
 离线安装
 将下载解压的文件elasticsearch-analysis-ik-7.12.1.zip 重命名 为ik 执行以下命令
 docker mv ik /var/lib/docker/volumes/es-plugins/_data
 重启
 docker restart es
 评论





