美文网首页
docker学习

docker学习

作者: songkl | 来源:发表于2017-07-21 03:13 被阅读16次

    晚上在搞python做一个项目时候,顺便搞了一下docker python环境。
    真是一堆坑

    • 用到的一些docker命令 注意区分imageId和containerId
    docker images   //查看所有镜像
    doker ps    //查看当前运行的容器
    docker history {imageId}   //查看镜像的历史记录
    exit   //退出当前镜像 退出后可以提交
    docker commit -a "提交信息" {containerid}:{tag}   //提交改动
    docker tag {imageId} {imagename}:{tag}   //这个可以用来对镜像和tag重命名
    
    docker run -i -t -v {host_dir}:{container_dir} -p {host_port}:{container_port} {imageId}  env LANG=C.UTF-8 /bin/bash  
    /*
    -i: 以交互模式运行容器,通常与 -t 同时使用;
    -t: 为容器重新分配一个伪输入终端,通常与 -i 同时使用
    -v  目录挂载(非拷贝) 
    -p  端口映射 
    env LANG=C.UTF-8 指定utf-8编码,默认编码无法显示中文
    /bin/bash 进入container bash环境
    */
    
    
    • 进入docker container有两种方案:
    //进入container,退出时停止container
    //使用attach命令
    docker attach containerId
    
    //进入container,退出时不停止conainer
    //使用exec 命令。还有一些中文环境设置 建议在.bashrc中添加快捷函数
    function docker_exec() {
      docker exec -it $1 env LANG=C.UTF-8 /bin/bash
    }
    之后调用就可以 docker_exec containerId
    
    
    
    • docker运行中的动态端口映射命令是
    // $1 是host_port $2是container_port $3是imageId
    containerIP='docker inspect --format="{{.NetworkSettings.IPAddress}}" $3'
    iptables -t nat DOCKER -p tcp --dport $1 -j DNAT --to-destination ${containerIP}:$2
    

    但是 无奈我是mac iptables不存在 代替的是pfctl 。。 算了 还是睡觉了

    相关文章

      网友评论

          本文标题:docker学习

          本文链接:https://www.haomeiwen.com/subject/njdskxtx.html