sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://7fsjirqs.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
[root@localhost ~]# docker info
..........
127.0.0.0/8
Registry Mirrors:
'https://lz2nib3q.mirror.aliyuncs.com/'
Live Restore Enabled: false
Product License: Community Engine
systemctl start docker
docker version
docker info
docker --help
docker images [options] #列出本地所有镜像
-a #列出所有镜像(包含中间映像层)
-q #只显示镜像id
--digests #显示镜像摘要信息
--no-trunc #不截断输出(默认截断过长的列) 完整展示
docker search [options] 镜像名 #去dockerhub上查询当前镜像
-s 指定值 #列出收藏数不少于指定值的镜像
--no-trunc #不截断输出(默认截断过长的列) 完整展示
docker rmi 镜像名:版本 #未指定版本删除最新版本
-f #强制删除
docker run [OPTIONS] 镜像名 [cmd] #镜像名新建并启动容器
-i #以交互模式运行容器,通常与-t同时使用
-t #为容器重新分配一个伪终端,通常与-i同时使用
--name 别名 #为容器指定一个名字
-d #启动守护式容器(在后台启动容器),并返回容器ID
-p 映射端口号:原始端口号 #指定端口号启动,指定端口映射
-P #主机自动分配端口号,随机端口映射
--rm #当容器停止自动移除
例:$ docker run -it --name myTomcat -p 8888:8080 tomcat
$ docker run -d --name myTomcat -P tomcat
docker ps #列出所有正在运行的容器
-a #显示所有的容器,包括未运行的。
-l #显示最近创建的一个容器
-n 数值 #显示最近n个创建的容器
-q #静默模式,只显示容器编号
--no-trunc #不截断输出(默认截断过长的列) 完整展示
输出详情介绍:
**CONTAINER ID:** 容器 ID。
**IMAGE:** 使用的镜像。
**COMMAND:** 启动容器时运行的命令。
**CREATED:** 容器的创建时间。
**STATUS:** 容器状态。
状态有7种:
- created(已创建)
- restarting(重启中)
- running(运行中)
- removing(迁移中)
- paused(暂停)
- exited(停止)
- dead(死亡)
exit #容器停止退出
Ctrl+p+q #容器不停止退出
docker attach 容器名字/容器id
docker exec [options] 容器名字/容器id 容器内命令
-i #以交互模式运行容器,通常与-t一起使用
-t #分配一个伪终端
eg: docker exec -it centoss ls
docker exec -it mytomcat /bin/bash
docker rm 容器名字/容器id #删除容器
docker rm -f 容器名字/容器id #删除正在运行的容器
docker rm -f $(docker ps -aq) #删除所有容器
docker start 容器名字/容器id #开启容器
docker restart 容器名字/容器id #重启容器
docker stop 容器名字/容器id #正常停止容器运行
docker kill 容器名字/容器id #立即停止容器运行
docker logs [OPTIONS] 容器名字/容器id
-t #加入时间
-f #跟随最新的日志打印
--tail 数字 #显示最后多少条
docker top 容器名字/容器id
docker inspect 容器名字/容器id
docker cp 容器名字/容器id:容器内资源路径 宿主机目录路径 #将容器内资源拷贝到主机上
eg:
docker cp centoss:/aaa.txt /root/
#宿主机与容器之间可以相互分享文件
docker cp 宿主机目录路径 容器名字/容器id:容器内资源路径
eg:docker cp /root/bbb.txt centoss:/
宿主机:Docker安装在哪谁就是宿主机 centos
容器:在Docker种根据镜像启动的就是容器 centos容器
docker commit -a="作者" -m="描述信息" 容器ID 目标镜像名称:TAG
例:docker commit -a="nan" -m="witout docs" b35d35f72b8d nan/mytomcat:1.2
1.从dockerHub上下载tomcat镜像到本地并成功运行
2.删除上一步镜像产生的容器的doc目录
3.以当前没有doc目录的tomcat为模板commit生成一个新的镜像
4.启动新的镜像并和原来的对比
docker save IMAGEID [OPTIONS] filename
-o #输出到的文件。
eg:docker save tomcat:8.5.50 -o tomcat-8.5.50.tar
docker load [OPTIONS]
-i #指定导入的文件,代替 STDIN。
eg:docker load -i mysql-5.6.tar
docker port [OPTIONS] CONTAINER [PRIVATE_PORT[/PROTO]]
命令:docker run -it -v /宿主机的路径:/容器内的路径 镜像名
例子:docker run -it -v /hostDataValueme:/containerDataValueme centos
运行 docker inspect 容器id 命令 检查json串里有没有以下内容,如果有则证明卷挂载成功
"Mounts": [
{
"Type": "bind",
"Source": "/hostDataValueme",
"Destination": "/containerDataValueme",
"Mode": "",
"RW": true,
"Propagation": "rprivate"
}
]
命令:docker run -it -v /主机路径:/容器内路径:ro 镜像名
例子:docker run -it -v /hostDataValueme:/containerDataValueme:ro centos
1.创建数据卷
docker volume create my-vol
2.查看数据卷细节
docker volume inspect my-vol
[
{
"CreatedAt": "2020-11-25T11:43:56+08:00",
"Driver": "local",
"Labels": {},
"Mountpoint": "/var/lib/docker/volumes/my-vol/_data",
"Name": "my-vol",
"Options": {},
"Scope": "local"
}
]
3.挂载数据卷
docker run -d -P --name web -v my-vol:/usr/share/nginx/html nginx
docker inspect web
"Mounts": [
{
"Type": "volume",
"Name": "my-vol",
"Source": "/var/lib/docker/volumes/my-vol/_data",
"Destination": "/usr/share/nginx/html",
"Driver": "local",
"Mode": "z",
"RW": true,
"Propagation": ""
}
],
docker volume rm my-vol
docker volume ls
安装Tomcat
# 1.在docker hub搜索tomcat
docker search tomcat
# 2.下载tomcat镜像
docker pull tomcat
# 3.运行tomcat镜像
docker run -p 8080:8080 -d --name mytomcat tomcat
# 4.进入tomcat容器
docker exec -it mytomcat /bin/bash
# 5.将webapps目录挂载在外部
docker run -p 8080:8080 -v /root/webapps:/usr/local/tomcat/webapps -d --name mytomcat tomcat
1.在DockerHub上查找mysql镜像
$ docker search mysql
2.将mysql拉去到本地
$ docker pull mysql:5.6
3.运行mysql容器
# 没有暴露外部端口外部不能连接
$ docker run --name mysql -e MYSQL_ROOT_PASSWORD=root -d mysql:tag
# 没有暴露外部端口
$ docker run --name mysql -e MYSQL_ROOT_PASSWORD=root -p 3306:3306 -d mysql:tag
#为用户设置客户端连接密码
-e MYSQL_ROOT_PASSWORD=root
**4.进入这个容器 **
$ docker exec -it 容器id /bin/bash
5.Mysql操作
#进入mysql
mysql -u root -p
#输入密码 123456
#查询mysql的库
show databases;
#创建数据库
create database ems;
#切换到db01
use ems;
#建表
create table t_book(id int not null primary key, name varchar(20));
#查询所有表
show tables;
#向表中插入一条数据
insert into t_book values(1,'java');
#查询这张表的数据
select * from t_book;
#用我们外部win10的大黄navcat尝试连接这个mysql
查看MYSQL日志
$ docker logs 容器名称|容器id
$ docker run -p 映射端口:3306 --name 自定义名字 -v 宿主机目录:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=自定义密码 -d mysql:tag
#eg:
docker run -p 3335:3306 --name mysqlw -v mysqlData:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=root -d mysql:5.6
8.自定义的MySQL配置文件
MySQL的默认配置可以在中找到
/etc/mysql/my.cnf
,其中可以包含!includedir
其他目录,例如/etc/mysql/conf.d
或/etc/mysql/mysql.conf.d
。请检查mysql
映像本身中的相关文件和目录,以获取更多详细信息。
$ docker run --name mysql -v /root/mysql/conf.d:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:tag
#eg:
docker run -p 3335:3306 --name mysqlw -v mysqlConfig:/etc/mysql -e MYSQL_ROOT_PASSWORD=root -d mysql:5.6
#启动Mysql 指定端口并数据备份以及本地保存配置文件
docker run -p 3335:3306 --name mysqlw -v mysqlData:/var/lib/mysql -v mysqlConfig:/etc/mysql -e MYSQL_ROOT_PASSWORD=root -d mysql:5.6
9.将mysql数据库备份为sql文件
# 1.导出全部数据
$ docker exec 容器名|容器id sh -c 'exec mysqldump --all-databases -uroot -p"$MYSQL_ROOT_PASSWORD"' > /some/path/on/your/host/all-databases.sql
#eg:
docker exec b8d36482dffc sh -c 'exec mysqldump --all-databases -uroot -p"$MYSQL_ROOT_PASSWORD"' > /root/all-databases.sql
# 2.导出指定库数据
$ docker exec mysql sh -c 'exec mysqldump --databases 库表 -uroot -p"$MYSQL_ROOT_PASSWORD"' > /root/all-databases.sql
#eg:
docker exec b8d36482dffc sh -c 'exec mysqldump --databases yingx -uroot -p"$MYSQL_ROOT_PASSWORD"' > /root/users.sql
# 3.导出指定库数据不要数据
$ docker exec mysql sh -c 'exec mysqldump --no-data --databases 库表 -uroot -p"$MYSQL_ROOT_PASSWORD"' > /root/all-databases.sql
#eg:
docker exec b8d36482dffc sh -c 'exec mysqldump --no-data --databases yingx -uroot -p"$MYSQL_ROOT_PASSWORD"' > /root/user.sql
10.从转储文件还原数据
$ docker exec -i mysql sh -c 'exec mysql -uroot -p"$MYSQL_ROOT_PASSWORD"' < /root/xxx.sql
#eg:
docker exec -i b859bba6e061 sh -c 'exec mysql -uroot -p"$MYSQL_ROOT_PASSWORD"' < /root/all-databases.sql
docker exec -i ef12e2c085dd sh -c 'exec mysql -uroot -p"$MYSQL_ROOT_PASSWORD"' < /root/yingx.sql
1. 在DockerHub上查找redis镜像
$ docker search redis
2. 将redis拉去到本地
$ docker pull redis:4.0.14
3. 启动redis服务运行容器
#没有暴露外部端口
$ docker run --name redis -d redis:tag
#暴露外部宿主机端口为6379进行连接
$ docker run -d --name redis -p 6379:6379 redis:tag
$ docker run -it --name redis -p 6379:6379 redis:tag
$ docker run -it --name redis -p 6379:6379 redis:tag redis-server
4.查看启动日志
$ docker logs -t -f 容器id|容器名称
5.连接redis客户端
# 1.默认端口连接
$ docker exec -it 容器id redis-cli
# 2.指定端口连接
$ docker exec -it 容器id redis-cli -h 192.168.253.128 -p 6370
#命令说明:
-h 192.168.253.128 : #指定连接地址
-p 6370 : #指定连接端口
5.指定AOF持久化
如果启用了持久性,则数据存储在中
VOLUME /data
,可以与--volumes-from some-volume-container
或一起使用-v /docker/host/dir:/data
$ docker run --name 容器id -d -p 6379:6379 redis:tag redis-server --appendonly yes
$ docker run --name 容器id -d -p 6379:6379 -v /docker/host/dir:/data redis:tag redis-server --appendonly yes
#eg:
$ docker run --name redis -d -p 6379:6379 -v redisData:/data redis:4.0.14 redis-server --appendonly yes
6. 自定义配置启动Redis容器
默认情况下redis官方镜像中没有redis.conf配置文件 需要去官网下载指定版本的配置文件
- wget http://download.redis.io/releases/redis-5.0.8.tar.gz 下载官方安装包
- 将官方安装包中配置文件进行复制到宿主机指定目录中如 /root/redis/redis.conf文件
1.创建配置文件
#创建文件夹,新建配置文件贴入从官网下载的配置文件并修改
mkdir /root/redis/
vim /root/redis/redis.conf
2.修改需要自定义的配置
bind 0.0.0.0 #开启远程权限
port 7000 #启动端口
appenonly yes #开启aof持久化
3.配置文件介绍
bind 127.0.0.1 #bind:绑定redis服务器网卡IP,默认为127.0.0.1,即本地回环地址。这样的话,访问redis服务只能通过本机的客户端连接,而无法通过远程连接。如果bind选项为空的话,那会接受所有来自于可用网络接口的连接。
protected-mode yes #默认yes,开启保护模式,限制为本地访问,改为 no关闭保护模式
port 6379 #指定redis运行的端口,默认是6379。由于Redis是单线程模型,因此单机开多个Redis进程的时候会修改端口。
timeout 0 #设置客户端连接时的超时时间,单位为秒。当客户端在这段时间内没有发出任何指令,那么关闭该连接。默认值为0,表示不关闭。
daemonize no #默认no,改为yes意为以守护进程方式启动,可后台运行,除非kill进程,改为yes会使配置文件方式启动redis失败
databases 16 #数据库个数,默认值是 16,也就是说默认Redis有16个数据库。
appendonly no #默认redis使用的是rdb方式持久化,这种方式在许多应用中已经足够用了,改为yes开启aof持久化持久化
4…指定配置文件启动
$ docker run -p 7001:7000 --name redis -v /usr/local/docker/redis.conf:/etc/redis/redis.conf -v /usr/local/docker/data:/data -d redis:4.0.14 redis-server /etc/redis/redis.conf --appendonly yes
#eg:
$ docker run -d -p 7001:7000 --name redis -v /root/redis/redis.conf:/etc/redis/redis.conf redis:4.0.14 redis-server /etc/redis/redis.conf
#命令解释说明:
-p 7001:7000 #端口映射:前表示主机部分,:后表示容器部分。
-v #挂载目录,规则与端口映射相同。
redis-server /etc/redis/redis.conf #以配置文件启动redis,加载容器内的conf文件,最终找到的是挂载的目录/usr/local/docker/redis.conf
7.将数据目录挂在到本地保证数据安全
$ docker run -p 6379:6379 -d --name redis -v /root/redis/data:/data -v /root/redis/redis.conf:/etc/redis/redis.conf redis:4.0.14 redis-server /etc/redis/redis.conf
docker run -p 7777:7000 -d --name redisplus -v redisPlusData:/data -v /root/redis.conf:/etc/redis/redis.conf redis:5.0.10 redis-server /etc/redis/redis.conf
注意:调高JVM线程数限制数量
#在centos窗口中,修改配置sysctl.conf
$ vim /etc/sysctl.conf
#加入如下配置
vm.max_map_count=262144
#启用配置
$ sysctl -p
#注:这一步是为了防止启动容器时,报出如下错误:
bootstrap checks failed max virtual memory areas vm.max_map_count [65530] likely too low, increase to at least [262144]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5KGr7aKi-1644203566952)(Docker_1.assets/image-20200602184321790.png)]
1. 将es拉到本地
$ docker pull elasticsearch:6.8.2
2. 启动es容器
$ docker run -d --name es -p 9200:9200 -p 9300:9300 -e ES_JAVA_OPTS="-Xms128m -Xmx128m" elasticsearch:6.8.2
docker run -d --name es -p 9200:9200 -p 9300:9300 elasticsearch:6.8.2
#参数说明
-p #将docker镜像中的端口号映射宿主机器端口号,宿主机器端口号:docker容器端口号 ,可写多个,如果多个端口号是连续的,可以直接用-连接,如:4560-4600:4560-4600
-v #将docker镜像中的文件映射到宿主机器指定的文件,可以是文件夹,-v 宿主机文件:容器文件映射后可直接修改宿主机上的文件就可以改变docker中的配置,也可写多个。docker镜像中软件的配置文档默认在/usr/share”/{软件名}下
-e #指定环境变量;
注意:根据自己情况来配置 -e ES_JAVA_OPTS="-Xms256m -Xmx256m" 不配置的话,启动会占用你的2G内存,反之,配置的话,启动则根据你配置的内存来分配。
3. 访问测试
访问地址:http://192.168.253.128:9200/
4.指定数据卷启动EleasticSearch容器
# 0.复制容器中data目录到宿主机中
$ docker cp 容器id:/usr/share/elasticsearch/data /root/es
# 1.运行ES容器 指定jvm内存大小并指定ik分词器位置
$ docker run -d --name es -p 9200:9200 -p 9300:9300 -e ES_JAVA_OPTS="-Xms128m -Xmx128m" -v /root/es/plugins:/usr/share/elasticsearch/plugins -v /root/es/data:/usr/share/elasticsearch/data elasticsearch:6.4.2
#eg:
docker run -d --name es -p 9200:9200 -p 9300:9300 -e ES_JAVA_OPTS="-Xms128m -Xmx128m" -v esPlugins:/usr/share/elasticsearch/plugins -v esData:/usr/share/elasticsearch/data -v esConfig:/usr/share/elasticsearch/config elasticsearch:6.8.0
4 安装IK分词器
4.1.下载对应版本的IK分词器
$ wget https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v6.8.2/elasticsearch-analysis-ik-6.8.2.zip
4.2.解压到plugins/elasticsearch文件夹中
#安装unzip
$ yum install -y unzip
#使用unzip解压zip
$ unzip -d /var/lib/docker/volumes/esPlugins/_data/ elasticsearch-analysis-ik-6.8.2.zip
4.3.添加自定义扩展词和停用词
cd plugins/elasticsearch/config
vim IKAnalyzer.cfg.xml
<properties>
<comment>IK Analyzer 扩展配置</comment>
<!--用户可以在这里配置自己的扩展字典 -->
<entry key="ext_dict">ext_dict.dic</entry>
<!--用户可以在这里配置自己的扩展停止词字典-->
<entry key="ext_stopwords">ext_stopwords.dic</entry>
</properties>
4.4.创建配置文件
#在ik分词器目录下config目录中创建ext_dict.dic文件 编码一定要为UTF-8才能生效
$ vim ext_dict.dic 加入扩展词即可
#在ik分词器目录下config目录中创建ext_stopword.dic文件
$ vim ext_stopwords.dic 加入停用词即可
4.5.将此容器提交成为一个新的镜像
$ docker commit -a="zcn" -m="with IKAnalyzer" 容器id zcn/elasticsearch:6.8.2
4.6.使用新生成的这个es镜像创建容器,并挂载数据卷
$ docker run -d --name es -p 9200:9200 -p 9300:9300 -e ES_JAVA_OPTS="-Xms128m -Xmx128m" -v /usr/local/IKAnalyzer:/usr/share/elasticsearch/plugins/elasticsearch/config zcn/elasticsearch:6.8.2
#参数说明
-p #将docker镜像中的端口号映射宿主机器端口号,宿主机器端口号:docker容器端口号 ,可写多个,如果多个端口号是连续的,可以直接用-连接,如:4560-4600:4560-4600
-e ES_JAVA_OPTS="-Xms256m -Xmx256m" #指定环境变量,设置初始堆内存和最大内存 也可以调整虚拟机内存
-v #将docker镜像中的文件映射到宿主机器指定的文件,可以是文件夹,-v 宿主机文件:容器文件映射后可直接修改宿主机上的文件就可以改变docker中的配置,也可写多个。docker镜像中软件的配置文档默认在/usr/share”/{软件名}下.
5 安装kibana
5.1.下载kibana镜像到本地
$ docker pull kibana:6.8.2
5.2.启动kibana容器
$ docker run -d --name kibana -e ELASTICSEARCH_URL=http://192.168.253.128:9200 -p 5601:5601 kibana:6.8.2
5.3.访问kibana
访问地址:http://192.168.253.128:5601/
6.挂载配置文件启动
#进入kibana容器内部
$ docker exec -it 容器内部/容器Id bash
#配置文件目录
/usr/share/kibana/config/
#挂载配置文件启动
$ docker run -d --name kibana -v kibanaConfig:/usr/share/kibana/config/ -p 5601:5601 kibana:6.8.2
docker run -d --name kibanaes -v kibanaConfig:/usr/share/kibana/config/ -p 5602:5601 kibana:6.8.0
7.测试数据
DELETE /ems
PUT /ems
{
"mappings":{
"emp":{
"properties":{
"name":{
"type":"text",
"analyzer": "ik_max_word",
"search_analyzer": "ik_max_word"
},
"age":{
"type":"integer"
},
"bir":{
"type":"date"
},
"content":{
"type":"text",
"analyzer": "ik_max_word",
"search_analyzer": "ik_max_word"
},
"address":{
"type":"keyword"
}
}
}
}
}
PUT /ems/emp/_bulk
{"index":{}}
{"name":"小黑","age":23,"bir":"2012-12-12","content":"为开发团队选择一款优秀的MVC框架是件难事儿,在众多可行的方案中决择需要很高的经验和水平","address":"北京"}
{"index":{}}
{"name":"王小黑","age":24,"bir":"2012-12-12","content":"Spring 框架是一个分层架构,由 7 个定义良好的模块组成。Spring 模块构建在核心容器之上,核心容器定义了创建、配置和管理 bean 的方式","address":"上海"}
{"index":{}}
{"name":"张小五","age":8,"bir":"2012-12-12","content":"Spring Cloud 作为Java 语言的微服务框架,它依赖于Spring Boot,有快速开发、持续交付和容易部署等特点。Spring Cloud 的组件非常多,涉及微服务的方方面面,井在开源社区Spring 和Netflix 、Pivotal 两大公司的推动下越来越完善","address":"无锡"}
{"index":{}}
{"name":"win7","age":9,"bir":"2012-12-12","content":"Spring的目标是致力于全方位的简化Java开发。 这势必引出更多的解释, Spring是如何简化Java开发的?","address":"南京"}
{"index":{}}
{"name":"梅超风","age":43,"bir":"2012-12-12","content":"Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API","address":"杭州"}
{"index":{}}
{"name":"张无忌","age":59,"bir":"2012-12-12","content":"ElasticSearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口","address":"北京"}
GET /ems/emp/_search
{
"query":{
"term":{
"content":"框架"
}
},
"highlight": {
"pre_tags": [""],
"post_tags": [""],
"fields": {
"*":{}
}
}
}
1. 在DockerHub上查找nginx镜像
$ docker search nginx
2. 将Nginx拉到本地
$ docker pull nginx
3. 运行Nginx容器
$ docker run --name nginx-test -p 8080:80 -d nginx
#参数说明:
--name nginx-test:#容器名称。
-p 8080:80: #端口进行映射,将本地 8080 端口映射到容器内部的 80 端口。
-d nginx: #设置容器在在后台一直运行。
4.访问Nginx
访问地址:http://serverip:8080
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-cIDCrlbR-1644203566952)(Docker_1.assets/docker-nginx6.png)]
4.进入容器
$ docker exec -it nginx-test /bin/bash
#查找目录: whereis nginx
#配置文件: /etc/nginx/nginx.conf
5.挂在nginx配置以及html到宿主机外部
#复制配置文件到宿主机
$ docker cp nginx-test(容器id|容器名称):/etc/nginx/nginx.conf 宿主机名录
#启动nginx并挂载数据卷
$ docker run -p 8080:80 -d --name nginx -v /root/nginx/nginx.conf:/etc/nginx/nginx.conf -v /root/nginx/html:/usr/share/nginx/html nginx
#eg:
docker run -p 8787:80 -d --name nginxt -v /root/niginxConfs/nginx.conf:/etc/nginx/nginx.conf -v nginxHtml:/usr/share/nginx/html nginx:1.19
1. 在DockerHub上查找RabbitMQ镜像
$ docker search rabbitmq
2. 将RabbitMQ拉到本地
$ docker pull rabbitmq:3.7.28-management
3. 运行RabbitMQ容器
$ docker run -d --hostname rabbitmq -p 5671:5671 -p 5672:5672 -p 4369:4369 -p 25672:25672 -p 15671:15671 -p 15672:15672 --name okong-rabbit rabbitmq:3.7.28-management
#参数说明:
-d #后台运行容器;
–name #指定容器名;
-p #指定服务运行的端口(5672:应用访问端口;15672:控制台Web端口号);
-v #映射目录或文件;
–hostname #主机名(RabbitMQ的一个重要注意事项是它根据所谓的 “节点名称” 存储数据,默认为主机名);
-e #指定环境变量;(RABBITMQ_DEFAULT_VHOST:默认虚拟机名;RABBITMQ_DEFAULT_USER:默认的用户名;RABBITMQ_DEFAULT_PASS:默认用户名的密码)
4. 访问RabbitMQ
http://serverip:15672
登录账号:guest,密码:guest
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-lsmuiUf5-1644203566953)(Docker_1.assets/Rabbitmq.png)]
1. 在DockerHub上查找MongoDB镜像
$ docker search mongo
2. 将MongoDB拉到本地
$ docker pull mongo
3. 运行MongoDB容器
#无须权限
$ docker run -d -p 27017:27017 --name mymongo mongo
#查看mongo运行日志
$ docker logs -f mymongo
4. 进入mongodb容器
$ docker exec -it mymongo /bin/bash
#直接执行mongo命令进行操作
5.常见具有权限的容器
$ docker run --name mymongo -p 27017:27017 -d mongo --auth
6.进入容器配置用户名密码
mongo
use admin 选择admin库
#创建用户,此用户创建成功,则后续操作都需要用户认证
db.createUser({user:"root",pwd:"root",roles:[{role:'root',db:'admin'}]})
exit
将mongoDB中数据目录映射到宿主机中
$ docker run -d -p 27017:27017 -v /root/mongo/data:/data/db --name mymongo mongo