Docker安裝mysql,并配置忽略大小寫
docker run --name mysql8 -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -d --network my-net -v /c/Users/WilsonCai/WilsonPrivate/docker-mysql/:/var/lib/mysql mysql --lower_case_table_names=1
- -e MYSQL_ROOT_PASSWORD :設(shè)置mysql密碼
- -v /c/Users/WilsonCai/WilsonPrivate/docker-mysql/:/var/lib/mysql:掛載磁盤實現(xiàn)數(shù)據(jù)持久化,docker-mysql文件夾如果已有文件需要被清空,Linux系統(tǒng)使用/home/mysql
- --lower_case_table_names=1 :忽略大小寫筐钟,docker mysql默認區(qū)分大小寫的
- --network 設(shè)置mysql在Docker中的網(wǎng)絡(luò)設(shè)置
注:參數(shù)順序一定要對蹂空,--lower_case_table_names=1要加在鏡像名后面萤捆,鏡像名前面是參數(shù),后面是mysql配置冒黑,不然會報錯,而且只能初始化時配置
注:docker內(nèi)其他容器或者本機可以通過host.docker.internal:3306訪問docker中的mysql
mysql修改權(quán)限密碼方式
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
flush privileges;
Docker 安裝kafka
kafka是docker-compose的組合并需要持久化
version: "3"
services:
zookeeper:
image: zookeeper
build:
context: ./
container_name: zookeeper
ports:
- 2181:2181
volumes:
- ./data/zookeeper/data:/data
- ./data/zookeeper/datalog:/datalog
- ./data/zookeeper/logs:/logs
restart: always
kafka_node_0:
depends_on:
- zookeeper
build:
context: ./
container_name: kafka-node-0
image: wurstmeister/kafka
environment:
KAFKA_BROKER_ID: 0
KAFKA_ZOOKEEPER_CONNECT: host.docker.internal:2181
KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://host.docker.internal:9092
KAFKA_LISTENERS: PLAINTEXT://0.0.0.0:9092
KAFKA_NUM_PARTITIONS: 3
KAFKA_DEFAULT_REPLICATION_FACTOR: 2
ports:
- 9092:9092
volumes:
- ./data/kafka/node_0:/kafka
restart: unless-stopped
kafka_node_1:
depends_on:
- kafka_node_0
build:
context: ./
container_name: kafka-node-1
image: wurstmeister/kafka
environment:
KAFKA_BROKER_ID: 1
KAFKA_ZOOKEEPER_CONNECT: host.docker.internal:2181
KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://host.docker.internal:9093
KAFKA_LISTENERS: PLAINTEXT://0.0.0.0:9093
KAFKA_NUM_PARTITIONS: 3
KAFKA_DEFAULT_REPLICATION_FACTOR: 2
ports:
- 9093:9093
volumes:
- ./data/kafka/node_1:/kafka
restart: unless-stopped
kafka_node_2:
depends_on:
- kafka_node_1
build:
context: ./
container_name: kafka-node-2
image: wurstmeister/kafka
environment:
KAFKA_BROKER_ID: 2
KAFKA_ZOOKEEPER_CONNECT: host.docker.internal:2181
KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://host.docker.internal:9094
KAFKA_LISTENERS: PLAINTEXT://0.0.0.0:9094
KAFKA_NUM_PARTITIONS: 3
KAFKA_DEFAULT_REPLICATION_FACTOR: 2
ports:
- 9094:9094
volumes:
- ./data/kafka/node_2:/kafka
restart: unless-stopped
docker-compose up -d
此命令可以將上述組合上線
Docker 安裝redis
docker run -v /c/Users/WilsonCai/WilsonPrivate/docker-redis:/usr/local/etc/redis --name myredis -p 6379:6379 -d --network my-net redis
Docker 安裝kowl
docker run --name mykowl -p 8888:8080 -e KAFKA_BROKERS=host.docker.internal:9092 -d quay.io/cloudhut/kowl:master
注:前提是本機安裝了kafka,可以通過host.docker.internal進行訪問
Docker常用命令
-
build時可以直接tag到遠程目錄省去tag這一步
docker build -t my-app:1.0 .
-
打tag到指定目錄,wilsoncai666是dockerhub中的一個repository,其余地址私人倉庫按實際情況填寫
docker tag my-app:1.0 wilsoncai666/my-app:1.0
-
push到dockerhub中的個人倉庫中,push剛剛tag之后的名稱,同理可以推送到任意指定repository,其余非官方倉庫需要進行登錄才可以進行pull
docker push wilsoncai666/my-app:1.0
-
刪除容器,如果容器正在運行,刪除之前記得進行stop
docker rm <container-name/id>
-
刪除鏡像文件
docker rmi <image-name/id>
-
查看日志
docker logs <container-id>
-
進入容器內(nèi)部,就可以看到我們構(gòu)建的的鏡像是不是按照Dockerfile規(guī)定把文件復(fù)制到相應(yīng)的目錄
docker exec -it <container-id> /bin/sh(或者是bash)
-
組合上線或下線
docker-compose -f xxx.yaml up
docker-compose -f xxx.yaml down