Docker,具有快捷方便的特性,機器上不需要安裝軟件和進行各種配置,拉取鏡像,一行命令即可啟動服務,不使用時,一行命令關閉容器即可,快捷方便,干凈、利索。建議將本地的redis、mysql、kafka等常見服務使用docker進行安裝,使用時用命令行啟動,不使用則關閉即可。
下面列出我本地常用的鏡像。
一、本地docker添加https://registry.docker-cn.com鏡像地址
在國內拉取鏡像時經常出現超時現象,建議添加docker中國地址,例如
二、我本地使用的docker清單:
1、postgres
2、mysql
3、redis
4、nginx
5、mongo
6、kafka
7、rabbitmq
三、鏡像命令
-- 拉取鏡像。tag不寫的話,則拉取最新版的鏡像
docker pull 鏡像名稱:tag
-- 查看鏡像
docker images
-- 查找鏡像倉庫中鏡像
docker search 鏡像名
-- 查找本地鏡像
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]
四、各個鏡像的使用
1、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作為鏡像。
在使用客戶端連接數據庫即可。
2、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;
再使用客戶端連接數據庫即可。
3、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]
1、查詢鍵
keys * 查詢所有的鍵,會遍歷所有的鍵值,復雜度O(n)
2、鍵總數
dbsize 查詢鍵總數,直接獲取redis內置的鍵總數變量,復雜度O(1)
3、檢查鍵是否存在
exists key 存在返回1,不存在返回0
4、刪除鍵O(k)
del key [key...] 返回結果為成功刪除鍵的個數
4、nginx
-- 拉取鏡像
docker pull nginx
-- 運行鏡像
docker run --name mynginx -d -p 8080:80 nginx:latest
5、mongo
-- 拉取鏡像
docker pull mongo
-- 運行鏡像
docker run -p 27017:27017 -d mongo:latest
6、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
7、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。