- 加速
systemctl daemon-reloadvi /etc/docker/daemon.json
{"registry-mirrors":["https://registry.docker-cn.com","https://uke7gffq.mirror.aliyuncs.com"]}
{"registry-mirrors":["https://uke7gffq.mirror.aliyuncs.com"]}
{"registry-mirrors": ["https://registry.cn-hangzhou.aliyuncs.com"]}
service docker restart
- docker所有容器
- 停止: docker stop $(docker ps -aq)
- 删除: docker stop $(docker ps -aq) && docker rm $(docker ps -aq)
- 清理: docker system prune -a 会删除数据集,还是谨慎点。
- docker和文件:
- 保存镜像到压缩文件: docker save -o images.tar ubuntu:v3
- 保存所有的: docker save $(docker images | grep -v REPOSITORY | awk 'BEGIN{OFS=":";ORS=" "}{print $1,$2}') -o k8s-master.tar
- 加载文件到镜像: docker load -i images.tar
- 设置时区:
- mysql -e TZ="Asia/Shanghai"
- centos:-v /etc/localtime:/etc/localtime:ro
- BUG解决方案
- bash-4.1#Bug修复:
- cp /etc/skel/.bash* /root/ && su
- source /root/.bashrc
- 宿主机overlay空间不足。把文件挪到其他数据目录,并建立软连接
- 停止docekr
- mv /var/lib/docker/* /data1/docker/
- ln -s /data1/docker/ /var/lib/docker
- 自动重启:--restart=unless-stopped
- mysql默认镜像使用:
- 启动:
- docker run -d -e MYSQL_ROOT_PASSWORD=DRsXT5ZJ6Oi55LPQ --restart=unless-stopped --name mysql --privileged=true -v /data/mysql/data:/var/lib/mysql -p 3306:3306 -e TZ=Asia/Shanghai mysql
- docker run -d -e MYSQL_ROOT_PASSWORD=root --name mysql --restart=unless-stopped -v /C/data/docker/mysql:/var/lib/mysql -p 3306:3306 -e TZ=Asia/Shanghai mysql
- docker run -d -e MYSQL_ROOT_PASSWORD=123456 --name mysql --restart=unless-stopped --privileged=true -v /data/mysql/data:/var/lib/mysql -p 3306:3306 -e TZ=Asia/Shanghai mysql:5.7
- docker run -d -e MYSQL_ROOT_PASSWORD=123456 --restart=unless-stopped --name mysql_3307 --privileged=true -v /data/mysql/data_3307:/var/lib/mysql -v /data/mysql/mysqld.cnf:/etc/mysql/my.cnf -p 3307:3306 -e TZ=Asia/Shanghai mysql:5.7
- 进入:docker exec -it id bash
- 设置root访问:mysql -u root -proot
- 修改密码:
- ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'root';
- FLUSH PRIVILEGES;
- 设置远程访问:
- GRANT ALL ON *.* TO 'root'@'%';
- FLUSH PRIVILEGES;
- 宿主机连接docker中的MySQL:mysql -u root -h 172.17.0.3 -proot -P13306
- elasticsarch
- es: docker run -e ES_JAVA_OPTS="-Xms256m -Xmx256m" -d --name elasticsearch --restart=unless-stopped -v /data/es/data:/usr/share/elasticsearch/data -v /data/es/plugins:/usr/share/elasticsearch/plugins -p 9200:9200 -p 9300:9300
- docker run -d --name elasticsearch --restart=unless-stopped -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" -e ES_JAVA_OPTS="-Xms512m -Xmx512m" -v /data/es/data/:/usr/share/elasticsearch/data elasticsearch
- header: docker run -d -p 9100:9100 docker.io/mobz/elasticsearch-head:5
- redis默认镜像的启动:
docker run -v /data/redis/:/data --name redis_6379 --restart=unless-stopped --privileged=true -p 6379:6379 -d --restart=always redis redis-server --appendonly yes --requirepass "DRsXT5ZJ6Oi55LPQ"
docker run -v /e/data/redis/:/data --name redis_6379 --restart=unless-stopped --privileged=true -p 6379:6379 -d --restart=always redis redis-server --appendonly yes --requirepass "kjgz123"
- CDH quickstart使用:
- 下载镜像:docker pull cloudera/quickstart:latest
- 启动镜像:
docker run --name cdh --hostname=quickstart.cloudera --privileged=true -v /etc/localtime:/etc/localtime:ro -t -i -P -p 8022:8022 -p 9090:9090 -p 7180:7180 -p 8890:8890 -p 10002:10002 -p 80:80 -p 8888:8888 -p 7187:7187 -p 11000:11000 -p 8020:8020 -p 8480:8480 -p 10020:10020 -p 50020:50020 -p 8485:8485 -p 50090:50090 -p 19888:19888 -p 10033:10033 -p 25010:25010 -p 50070:50070 -p 50010:50010 -p 9083:9083 -p 50075:50075 -p 25020:25020 -p 60000:60000 -p 43136:43136 -p 8070:8070 -p 9095:9095 -p 18088:18088 -p 8040:8040 -p 60010:60010 -p 23020:23020 -p 60020:60020 -p 8085:8085 -p 8983:8983 -p 40439:40439 -p 21050:21050 -p 13562:13562 -p 60030:60030 -p 8030:8030 -p 8031:8031 cloudera/quickstart /bin/bash -c '/usr/bin/docker-quickstart && service ntpd start && /home/cloudera/cloudera-manager --force --enterprise'
- 进入镜像:sudo docker exec -it CONTAINER_ID /bin/bash
- 开启CDH: sudo /home/cloudera/cloudera-manager --force --enterprise
- 管理后台:ip:7180
- 用户名密码:
- 服务器状态:service --status-all
- 开启ntp:service ntpd start
- MongoDB:
- 一般: docker run --name mongo -p 27017:27017 -v /home/data/mongo/db/:/data/db -d mongo
- 带密码: docker run -d --name mongodb -e MONGO_INITDB_ROOT_USERNAME=admin -e MONGO_INITDB_ROOT_PASSWORD=admin -p 27017:27017 -v /home/data/mongo/db/:/data/db mongo
- 连接: mongo -u admin -p admin -h localhost
- Conda: docker run -v /data/log/:/data/log/ -v /home/crawl/:/home/crawl/ --name crawl -p 5432:5432 -d --restart=always conda /bin/bash
- gerapy:docker run -d -v /data/gerapy:/app/gerapy -p 8000:8000 thsheep/gerapy:master
- Celery Flower:
- airflow:
sudo docker run -it astronomerio/airflow bash
airflow initdb
airflow server
- spark
- master: docker run --name spark-master -h spark-master -p 6066:6066 -p 7077:7077 -p 8080:8080 -e ENABLE_INIT_DAEMON=false -d bde2020/spark-master:2.4.5-hadoop2.7
- worker: docker run --name spark-worker-1 --link spark-master:spark-master -p 8081:8081 -e ENABLE_INIT_DAEMON=false -d bde2020/spark-worker:2.4.5-hadoop2.7
- zepplin: docker run -p 8080:8080 --rm -v /data/zepplin/logs:/logs -v /data/zepplin/notebook:/notebook -e ZEPPELIN_LOG_DIR='/logs' -e ZEPPELIN_NOTEBOOK_DIR='/notebook' --name zeppelin apache/zeppelin:0.9.0
- 把linux用docker设置为代理:http://0e2.net/post/75.html
- yum install docker
- docker pull kylemanna/openvpn
- OVPN_DATA="/root/ovpn-data"
- IP="xxx.xxx.xxx.xxx" # 我的公网IP
- mkdir ${OVPN_DATA}
- docker run -v ${OVPN_DATA}:/etc/openvpn --rm kylemanna/openvpn ovpn_genconfig -u tcp://${IP}
- docker run -v ${OVPN_DATA}:/etc/openvpn --rm -it kylemanna/openvpn ovpn_initpki
- docker run -v ${OVPN_DATA}:/etc/openvpn --rm -it kylemanna/openvpn easyrsa build-client-full CLIENTNAME nopass
- docker run -v ${OVPN_DATA}:/etc/openvpn --rm kylemanna/openvpn ovpn_getclient CLIENTNAME > ${OVPN_DATA}/CLIENTNAME.ovpn
- docker run --name openvpn -v ${OVPN_DATA}:/etc/openvpn -d -p 1194:1194 --privileged kylemanna/openvpn
- 经过以上七个步骤,你将会在/root/ovpn-data中看到一个CLIENTNAME.ovpn文件,将其下载到本地,利用OpenVPN GUI连接,即可。
- 下载openvpn,http://openvpn.net/index.php/open-source/downloads.html
- 并安装。 将CLIENTNAME.ovpn复制到C:\Program Files\OpenVPN\config中。
- 服务:
- docker hub:https://hub.docker.com/ or https://store.docker.com/
- 修改镜像源头:
- https://cr.console.aliyun.com/cn-qingdao/mirrors
- 搜索镜像:docker search centos
- 下载镜像:docker pull billsteve/scrapy
- 镜像加速:
- vi /etc/docker/daemon.json
- "registry-mirrors": ["https://registry.docker-cn.com"]
- "registry-mirrors": ["https://uke7gffq.mirror.aliyuncs.com"]
- docker镜像之间网络连接:
- -------------------------------------------------------------------------------------------------以下为命令-------------------------------------------------------------------------------------------------------------------------------------
- 镜像:
- 为镜像添加tag:docker tag IMAGE_ID REPOSITORY:Tag
- 删除镜像:docker rmi image_id
- 上传容器到仓库:
- 创建仓库:scrapy
- 提交容器:docker commit CONTAINER_ID billsteve/scrapy
- 登录:docker login -> billsteve(用户名不是邮箱)-> passwd
- push: docker push billsteve/scrapy:latest (一次不成功可以push多次)
- 检测:docker inspect billsteve/scrapy
- 删除某个tag: docker rmi REPOSITORY:TAG
- 数据容器:
- 创建数据容器:docker run -d -v /var/lib/mysql -name data-mysql --enterypoint /bin/
- 使用数据容器:docker run -d -volumes-from data-mysql -e MYSQL_ROOT_PASS="muchsecurity" mysql
- 批量删除镜像:docker image rm $(docker container ls -a -q)
- 容器
- 查看容器的IP地址: docker inspect contain_id|grep IPAddress
- 查看容器占用的端口: docker port contain_id
- 给容器添加端口:
- iptables -t nat -A PREROUTING -p tcp -m tcp --dport 8888 -j DNAT --to-destination 172.17.0.2:8888
- iptables-save
- -----------------------------------------
- iptables -t nat -A DOCKER -p tcp --dport 8888 -j DNAT --to-destination 172.17.0.2:8888
- iptables -t nat -A POSTROUTING -j MASQUERADE -p tcp --source 172.17.0.2 --destination 8888 --dport 8888
- iptables -A DOCKER -j ACCEPT -p tcp --destination 172.17.0.2 --dport 8888
- 查看容器占用的端口: iptables -t nat -nvL | grep 172.17.0.2
- 启动容器时确定端口: docker -it --name django -p 80:8080 web/django /bin/bash
- 同主机下的容器间通信: or
- 重命名容器:docker rename old_name new_name
- 删除容器:docker rm contain_id
- 显示容器运行的进程:docker top Name/ID
- 列出容器改变的文件:docker diff Name/ID
- centos7系统服务bug:docker run --privileged=true -it --name centos7 image_id /usr/sbin/init
- 批量停止container:docker container stop $(docker container ls -a -q)
- 批量删除container:docker container rm $(docker container ls -a -q)
- 给容器固定ip
- 下载pipework :https://github.com/jpetazzo/pipework.git
- unzip pipework-master.zip
- mv pipework-master pipework
- cp -rp pipework/pipework /usr/local/bin/
- 安装bridge-utils:yum -y install bridge-utils
- 创建网络
- brctl addbr br0
- ip link set dev br0 up
- ip addr add 192.168.2.1/24 dev br0
- 给容器设置固定ip
- pipework br0 hadoop0 192.168.2.10/24
- pipework br0 hadoop1 192.168.2.11/24
- pipework br0 hadoop2 192.168.2.12/24
- 测试:
- ping 192.168.2.10
- ping 192.168.2.11
- ping 192.168.2.12
- 查看docker容器的IP配置:docker exec container_name ifconfig
- 容器不能上网,宿主机执行:
- echo "net.ipv4.ip_forward=1">>/etc/sysctl.conf
- sysctl -p
- 容器之间不能通信:重启一下宿主机网络
- 从主机复制文件到容器:
- sudo docker cp host_path containerID:container_path
- sudo docker cp /usr/local/src/Anaconda3-5.2.0-Linux-x86_64.sh 75835a67d134:/usr/local/src/
- 从容器复制文件到主机: sudo docker cp containerID:container_path host_path
- 更新容器开机启动:docker update --restart=always contain_id
- docker切换数据目录
- 关闭docker : service docker stop
- vim /etc/docker/daemon.json
{
"graph": "/new-path/docker"
}
- cp -R /var/lib/docker/* /new/path/docker
- docker file