Docker 所有命令

  1. 加速
  2. 
    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

     

  3. docker所有容器
    1. 停止: docker stop $(docker ps -aq)
    2. 删除: docker stop $(docker ps -aq) && docker rm $(docker ps -aq)
    3. 清理: docker system prune -a 会删除数据集,还是谨慎点。
    4.  
  4. docker和文件:
    1. 保存镜像到压缩文件: docker save -o images.tar ubuntu:v3
      1. 保存所有的: docker save $(docker images | grep -v REPOSITORY | awk 'BEGIN{OFS=":";ORS=" "}{print $1,$2}') -o k8s-master.tar
    2. 加载文件到镜像: docker load -i images.tar
  5. 设置时区:
    1. mysql -e TZ="Asia/Shanghai"
    2. centos:-v /etc/localtime:/etc/localtime:ro
    3.  
  6. BUG解决方案
    1. bash-4.1#Bug修复:
      1. cp /etc/skel/.bash* /root/  && su
      2. source /root/.bashrc
    2. 宿主机overlay空间不足。把文件挪到其他数据目录,并建立软连接
      1. 停止docekr
      2. mv /var/lib/docker/* /data1/docker/
      3. ln -s /data1/docker/ /var/lib/docker
  7. 自动重启:--restart=unless-stopped
  8. mysql默认镜像使用:
    1. 启动:
      1. 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
      2. 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
      3. 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
      4. 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
      5.  
    2. 进入:docker exec -it id bash
    3. 设置root访问:mysql -u root -proot
    4. 修改密码:
      1. ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'root';
      2. FLUSH PRIVILEGES;
    5. 设置远程访问:
      1. GRANT ALL ON *.* TO 'root'@'%';
      2. FLUSH PRIVILEGES;
    6. 宿主机连接docker中的MySQL:mysql -u root -h 172.17.0.3 -proot -P13306
    7.  
  9. elasticsarch
    1. 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
    2. 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
    3. header: docker run -d -p 9100:9100 docker.io/mobz/elasticsearch-head:5
  10. 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"

  1. CDH quickstart使用:
    1. 下载镜像:docker pull cloudera/quickstart:latest
    2. 启动镜像:

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'

    1. 进入镜像:sudo docker exec -it CONTAINER_ID /bin/bash
    2. 开启CDH: sudo /home/cloudera/cloudera-manager --force --enterprise
    3. 管理后台:ip:7180
    4. 用户名密码:
    5. 服务器状态:service --status-all
    6. 开启ntp:service ntpd start
  • MongoDB:
    1. 一般: docker run --name mongo -p 27017:27017 -v /home/data/mongo/db/:/data/db -d mongo
    2. 带密码: 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
    3. 连接: 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

  1. spark
    1. 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
    2. 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
  2. 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
  3. 把linux用docker设置为代理:http://0e2.net/post/75.html
    1. yum install docker
    2. docker pull kylemanna/openvpn
    3. OVPN_DATA="/root/ovpn-data"
    4. IP="xxx.xxx.xxx.xxx" # 我的公网IP
    5. mkdir ${OVPN_DATA}
    6. docker run -v ${OVPN_DATA}:/etc/openvpn --rm kylemanna/openvpn ovpn_genconfig -u tcp://${IP}
    7. docker run -v ${OVPN_DATA}:/etc/openvpn --rm -it kylemanna/openvpn ovpn_initpki
    8. docker run -v ${OVPN_DATA}:/etc/openvpn --rm -it kylemanna/openvpn easyrsa build-client-full CLIENTNAME nopass
    9. docker run -v ${OVPN_DATA}:/etc/openvpn --rm kylemanna/openvpn ovpn_getclient CLIENTNAME > ${OVPN_DATA}/CLIENTNAME.ovpn
    10. docker run --name openvpn -v ${OVPN_DATA}:/etc/openvpn -d -p 1194:1194 --privileged kylemanna/openvpn
    11. 经过以上七个步骤,你将会在/root/ovpn-data中看到一个CLIENTNAME.ovpn文件,将其下载到本地,利用OpenVPN GUI连接,即可。
    12. 下载openvpn,http://openvpn.net/index.php/open-source/downloads.html
    13. 并安装。 将CLIENTNAME.ovpn复制到C:\Program Files\OpenVPN\config中。  
  4. 服务:
    • 镜像加速:
      • vi /etc/docker/daemon.json
      • "registry-mirrors": ["https://registry.docker-cn.com"]
      • "registry-mirrors": ["https://uke7gffq.mirror.aliyuncs.com"]
  1. docker镜像之间网络连接:https://www.cnblogs.com/shenh/p/9714547.html
  2. -------------------------------------------------------------------------------------------------以下为命令-------------------------------------------------------------------------------------------------------------------------------------
  3.  
  4. 镜像:
    • 为镜像添加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)
  1. 容器
    • 查看容器的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
    • 同主机下的容器间通信:http://blog.csdn.net/dream_broken/article/details/52414560 or http://www.cnblogs.com/kevingrace/p/6590319.html
    • 重命名容器: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
  1. docker切换数据目录
    1. 关闭docker : service docker stop
    2. vim /etc/docker/daemon.json 

{

"graph": "/new-path/docker"

}

    1. cp -R /var/lib/docker/* /new/path/docker
  • docker file

0

  1.  
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值