docker学习

晚上在搞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学习)