[Docker]Docker常用命令备忘

最近做的一个项目,涉及到MongoDB集群、Spark集群,Hadoop集群,Python2.7,Python3.5,各种推荐算法,Java Resin环境,LNMP环境、vsftpd等,因为需要部署内网环境、测试环境、生产环境,每次部署就是一次折磨,这个时候Docker的好处就体现出来了,把Python环境、LNMP环境、vsftpd等,全部打入docker中,特别爽歪歪。经过2个月的部署,联调也整理了一些docker的实用命令。
系统环境以CentOS 7为例

  1. 下载安装docker并启动服务
    https://download.docker.com/linux/centos/7/x86_64/stable/Packages/
    下载 docker-ce-18.03.1.ce-1.el7.centos.x86_64.rpm

    1
    2
    
    yum install docker-ce-18.03.1.ce-1.el7.centos.x86_64.rpm 
    service docker start
    
  2. docker的常用命令
    解决报错WARNING: IPv4 forwarding is disabled. Networking will not work.

    第一步:在宿主机上执行 echo "net.ipv4.ip_forward=1" >>/usr/lib/sysctl.d/00-system.conf

    第二步:重启network和docker服务

    1
    
    [root@localhost /]# systemctl restart network && systemctl restart docker
    

    Failed to get D-Bus connection: Operation not permitted

    1
    
    docker run -d --name centos7 --privileged=true --net=host -v /home/code:/home/code centos:mysql_python3_jdk1.8 /usr/sbin/init
    

    长时间运行docker容器,并装载宿主机路径

    1
    
    docker run -dit -v /home/code:/home/code python35:latest /bin/bash
    

    进入已经启动的docker容器

    1
    
    docker exec -it 容器id /bin/bash
    

    启动某个容器镜像

    1
    
    docker run -it python35:latest /bin/bash
    

    Docker导出:

    1
    
    docker export -o /home/python35.tar 容器id
    

    docker save *.tar

    Docker导入:

    1
    
    docker import /home/python35.tar
    

    docker load < *.tar

    Docker 打标签

    1
    
    docker tag 镜像id REPOSITORY:TAG
    

    Docker 指定网络为宿主机网络

    1
    
    docker run -dit --net=host python35:latest /bin/bash
    

    Docker 指定容器和宿主机时间同步

    1
    
    docker run -dit -v /etc/localtime:/etc/localtime python35:latest /bin/bash
    

    安装JDK1.8

    1
    
    yum install java-1.8.0-openjdk* -y
    

    安装MySQL5.6

    1
    2
    3
    4
    5
    6
    7
    8
    
    rpm -Uvh http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm
    yum -y install mysql-community-server
    systemctl enable mysqld
    systemctl start mysqld
    初始化:
    mysql_secure_installation
    GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '远程登录密码' WITH GRANT OPTION;
    FLUSH PRIVILEGES;
    

    Python3编码

    1
    
    echo 'export LANG=zh_CN.UTF-8' >> ~/.bashrc
    
Licensed under CC BY-NC-SA 4.0