Docker命令笔记

查看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

 

 

 

你可能感兴趣的:(docker)