查看linux版本:cat /etc/issue
下载镜像docker pull mysql:5.6
查看下载的镜像:docker images
创建并首次启动mysql容器:docker run --name "mysql" -p 3308:3306 -v /f/docker-data/mysql/docker-var-lib-mysql:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=root -d mysql:5.6
以上-p为端口映射,"mysql"为容器名称,-v为文件夹映射,容器中数据库的数据将保存到容器的/var/lib/mysql中,也就是物理机的/f/docker-var-lib-mysql,在生成新容器时指定该映射即实现了数据的重用。
查看容器:docker ps -a
删除容器:docker rm mysql
启动容器:docker start mysql
关闭容器:docker stop mysql
进入容器命令行(使用容器id或容器名称):
docker exec -it f4119e5030fe /bin/bash
docker exec -it mysql /bin/bash
查看卷:docker volume ls
查看孤单卷(无container使用的卷):docker volume ls -qf dangling=true
容器随docker启动(--restart=no则为取消):docker update zeppelin --restart=always
启动centos,注意创建时需要有-it,否则exec无法进入
docker run -d -it --net=host -v /F/docker-data/datax:/data --name datax centos:latest
docker exec -it datax /bin/bash
容器中的应用访问其他容器中的数据库需要使用物理机的IP而不能是127.0.0.1之类的。
安装pgadmin:
docker pull chorss/docker-pgadmin4
docker run --name pgadmin -e SERVER_MODE=true -e PGADMIN_SETUP_EMAIL=admin -e PGADMIN_SETUP_PASSWORD=admin -d -p 5050:5050 -v /f/docker-data/pgadmin:/data chorss/docker-pgadmin4
安装zeppelin
docker run -d -p 8082:8080 -v /F/docker-data/zeppelin/logs:/logs -v /F/docker-data/zeppelin/notebook:/notebook --env HOST_IP=0.0.0.0 --env ZEPPELIN_LOG_DIR='/logs' --env ZEPPELIN_NOTEBOOK_DIR='/notebook' --name zeppelin apache/zeppelin:0.8.0
访问http://localhost:8082即可,连接GP需要先在前端创建interpreter,名为psql,配置url驱动用户名密码等
default.driver org.postgresql.Driver
default.url jdbc:postgresql://192.168.122.113:5432/tutorial
每段代码开头可声明处理方式(%psql.sql,%python等),一个note中可以有多种代码,未声明时则为创建note时指定的默认类型。
%psql.sql
select * from faa.sample limit 10;
安装示例:https://segmentfault.com/a/1190000007190161
安装hadoop单节点(此处的端口映射是工作电脑端口限制导致的额外配置):
docker pull sequenceiq/hadoop-docker:latestdocker run -i -t -p 8070:50070 -p 8071:9000 -p 8072:8088 -p 8073:8040 -p 8074:8042 -p 8075:49707 -p 8076:50010 -p 8077:50075 -p 8078:50090 --name hadoop sequenceiq/hadoop-docker:latest /etc/bootstrap.sh -bash
测试
/usr/local/hadoop-2.7.0/bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.0.jar grep input output 'dfs[a-z.]+'
/usr/local/hadoop-2.7.0/bin/hdfs dfs -cat output/*
https://hub.docker.com/r/sequenceiq/hadoop-docker/
安装kafka
网络设置 --net=host,该设置使容器直接使用本机的网卡,共享了localhost/ip/端口等,之后就无需再做端口映射,适用于IP容易变化且多个容器需要网络交流的情况。详见:https://segmentfault.com/q/1010000016340057?sort=created
--link zookeeper,该配置相当于在host中加入了指定机器名,在本容器中可以使用'zookeeper'访问对应容器
docker pull wurstmeister/zookeeper
docker pull wurstmeister/kafka
docker run -d --name zookeeper --net=host -t wurstmeister/zookeeper
docker run -d --name kafka --net=host --env KAFKA_ZOOKEEPER_CONNECT=localhost:2181 --env KAFKA_ADVERTISED_HOST_NAME=localhost --env KAFKA_ADVERTISED_PORT=9092 -v /F/docker-data/kafka:/kafka wurstmeister/kafka:latest
(注意设置了外挂文件夹后就不可以再执行delete topic操作)
创建topic:/opt/kafka_2.12-2.2.1/bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 2 --topic mytopic
列举topic:/opt/kafka_2.12-2.2.1/bin/kafka-topics.sh --list --zookeeper localhost:2181
查看topic:/opt/kafka_2.12-2.2.1/bin/kafka-topics.sh --describe --zookeeper localhost:2181 --topic mytopic
删除topic(执行后会加上delete标记,不用再管):/opt/kafka_2.12-2.2.1/bin/kafka-topics.sh --delete --zookeeper localhost:2181 --topic mytopic
单示例:
启动生产者:/opt/kafka_2.12-2.2.1/bin/kafka-console-producer.sh --broker-list localhost:9092 --topic mytopic
另一个shell中启动消费者:/opt/kafka_2.12-2.2.1/bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic mytopic
生产者shell中输入字符串,消费者shell中就会显示
将文本文件写入kafka:cat /kafka/1.txt|/opt/kafka_2.12-2.2.1/bin/kafka-console-producer.sh --broker-list localhost:9092 --topic mytopic|>>/dev/null
数据源->flume->kafka
启动flume:
./bin/flume-ng agent --conf ./conf -f /kafka/flume/flume2kafka.conf -n a1
启动消费者:
/opt/kafka_2.12-2.2.1/bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic mytopic
Alpine Linux安装telnet:apk add busybox-extras
向flume写数据:
telnet 127.0.0.1 8818
创建并首次启动hue容器:docker run --name hue -it -p 8888:8888 gethue/hue:latest bash
安装ifconfig命令:apt-get install net-tools -y
安装pip:apt install python-pip
pip install Werkzeug