Docker,具备快捷方便的特性,机器上不须要安装软件和进行各类配置,拉取镜像,一行命令便可启动服务,不使用时,一行命令关闭容器便可,快捷方便,干净、利索。建议将本地的redis、mysql、kafka等常见服务使用docker进行安装,使用时用命令行启动,不使用则关闭便可。mysql
下面列出我本地经常使用的镜像。nginx
1、本地docker添加https://registry.docker-cn.com镜像地址web
在国内拉取镜像时常常出现超时现象,建议添加docker中国地址,例如redis
2、我本地使用的docker清单:sql
一、postgres
二、mysql
三、redis
四、nginx
五、mongo
六、kafka
七、rabbitmqdocker
3、镜像命令
-- 拉取镜像。tag不写的话,则拉取最新版的镜像数据库
docker pull 镜像名称:tag
-- 查看镜像bash
docker images
-- 查找镜像仓库中镜像post
docker search 镜像名
-- 查找本地镜像spa
docker images | grep 镜像名
-- 移除镜像
docker rmi 镜像名称:tag
-- 进入容器,能够查看容器内部文件组
docker exec -it [CONTAINER ID] /bin/sh
-- 查看正在运行的容器
docker ps -a # docker ps -a | grep <容器名>
-- 中止正在运行的容器
docker stop [CONTAINER ID]
-- 移除已经中止的容器
docker rm [CONTAINER ID]
4、各个镜像的使用
一、postgres
-- 拉取镜像
docker pull postgres:9.6
-- 运行镜像
docker run --name mypostgre -e POSTGRES_PASSWORD=root -p 54321:5432 -d postgres:9.6
解释:
run,建立并运行一个容器;
--name,指定建立的容器的名字;
-e POSTGRES_PASSWORD=password,设置环境变量,指定数据库的登陆口令为password(登陆名:postgres);
-p 54321:5432,端口映射将容器的5432端口映射到外部机器的54321端口;
-d postgres:9.6,指定使用postgres:9.6做为镜像。
在使用客户端链接数据库便可。
二、mysql
-- 拉取镜像
docker pull mysql:8
-- 运行镜像
docker run --name mysqllocal -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root -d mysql:8
-- 进入容器
-- 登陆mysql
mysql -u root -p 解释: —登陆名:root 密码:root
-- 修复navicat客户端登陆
ALTER USER root IDENTIFIED WITH mysql_native_password BY root;
再使用客户端链接数据库便可。
三、redis
-- 拉取镜像
docker pull redis:3.2
-- 运行镜像
docker run --name myredis -p 6379:6379 -d redis:3.2 redis-server
-- 进入容器
-- 登陆redis
redis-cli
有密码的,须要登陆
docker exec -it 63519b779f2f redis-cli -a ‘密码’
经常使用命令:
先要选择库,select [0-15]
一、查询键
keys * 查询全部的键,会遍历全部的键值,复杂度O(n)
二、键总数
dbsize 查询键总数,直接获取redis内置的键总数变量,复杂度O(1)
三、检查键是否存在
exists key 存在返回1,不存在返回0
四、删除键O(k)
del key [key...] 返回结果为成功删除键的个数
四、nginx
-- 拉取镜像
docker pull nginx
-- 运行镜像
docker run --name mynginx -d -p 8080:80 nginx:latest
五、mongo
-- 拉取镜像
docker pull mongo
-- 运行镜像
docker run -p 27017:27017 -d mongo:latest
六、kafka
-- 拉取镜像
zookeeker: docker pull zookeeper:latest kafka: docker pull wurstmeister/kafka:latest
-- 运行镜像
-- 运行zookeeper
docker run -d --name myzookeeper --publish 2181:2181 --volume /etc/localtime:/etc/localtime zookeeper:latest
-- 运行kafka
docker run -d --name mykafka --publish 9092:9092 \ --link myzookeeper \ --env KAFKA_ZOOKEEPER_CONNECT=myzookeeper:2181 \ --env KAFKA_ADVERTISED_HOST_NAME=kafka所在宿主机的IP \ --env KAFKA_ADVERTISED_PORT=9092 \ --volume /etc/localtime:/etc/localtime \ wurstmeister/kafka:latest
七、rabbitmq
-- 拉取镜像
docker pull rabbitmq:management
-- 运行镜像
docker run -d --name rabbitmq --publish 5671:5671 \ --publish 5672:5672 --publish 4369:4369 --publish 25672:25672 --publish 15671:15671 --publish 15672:15672 \ rabbitmq:management
容器启动以后就能够访问web 管理端了 http://宿主机IP:15672,默认建立了一个 guest 用户,密码也是 guest。