docker映射问题和常⽤命令
docker映射问题和常⽤命令
之前在项⽬部署在docker⾥发现不能正常的运⾏,⽹上百度了⼀下原因。
docker 镜像和容器
docker 就是为了⽅便配置环境,使得项⽬的开发和上线不⽤适配各种环境。
因为我们开发测试和项⽬正式上线的时候环境肯定是不同的,很多时候因为版本的差异会导致很多的问题,⽐如Mysql的版本,redis版本,还有liunx系统各种依赖的版本,这些差异都有可能会导致项⽬的运⾏失败,所以统⼀的开发测试和部署环境就显得尤为重要了。
docker镜像和容器的关系通俗的说就像 软件包和正在运⾏的软件,这个软件包⾥包含了你需要的各种环境和项⽬本⾝,当你启动镜像时,你需要的项⽬就可以开启,正在运⾏的镜像就称为容器。
docker 映射问题
因为每⼀个容器都算是⼀个独⽴的系统,在这个系统中,⽣成的⽂件和路径都是独有的,当你关闭这个容器的时候,项⽬中⽣成的⽂件也就没了。⽽且如果你要操作宿主机上的⽂件的话也是⽆法访问的,为了解决这个问题,docker提供了⽂件夹映射和数据卷的功能,可以实现容器内部和宿主机环境的交互:
1.创建数据卷映射,并将数据卷映射到到容器的指定路径,这样在该指定路径下的⽂件,会在宿主机的对应⽂件夹中显⽰,且不会随着容器的停⽌⽽消失。
2.直接映射,将宿主机系统的某个路径映射到容器的某个路径,等于在这两个路径中架起了⼀座桥梁,可以数据互通。
#通过数据卷名称映射
docker run -d -p 8080:8080 --name tomcat -v 数据卷名称:容器内部的路径镜像id
#通过路径映射数据卷
docker run -d -p 8080:8080 --name tomcat -v 路径(/root/⾃⼰创建的⽂件夹):容器内部的路径镜像id
docker打包镜像数据卷名映射的话,在宿主机内默认⽬录为:
/var/lib/docker/volumes/{卷名}/_data
docker常⽤命令
我经常使⽤的⼀些命令:
docker ps#查看正在运⾏的所有容器
docker ps -a    #查看所有的容器(包括已经停⽌但是未删除的)
docker images    #查看所有的镜像
docker stop 容器名/容器id前缀#停⽌容器运⾏
docker rm容器名/容器id前缀#删除容器(需要先停⽌运⾏容器)
docker rmi 镜像名/镜像id前缀#删除镜像
docker build -t 镜像名.#⽣成镜像,当前⽬录下需要有Dockerfile(还可以扩展很多参数,具体可以百度)docker run -d #后台运⾏
-p 主机端⼝:容器内端⼝#将容器中的端⼝映射出来
--name=#指定容器的名字
-v {路径}:{路径}#映射指定路径(可以多个)
镜像名#该容器需要哪个镜像来⽣成
docker logs -f #实时显⽰所有的docker⽇志
--tail N #显⽰最新的N条⽇志
docker pull 镜像地址#拉取镜像
⼩作坊经常改镜像,建议写进shell脚本⼀键删除部署

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。