01_docker,容器,镜像的关系
在docker出现之前,linux中就已经出现了容器技术(linux container LXC,可以提供进程级别的隔离)。docker不是从零开始创建的,他的底层技术也是linux container。docker对LXC进行了一次封装。
镜像文件时静态的容器,容器是动态的镜像
docker只是容器的一种实现,比如阿里,google都有自己的容器技术。
在实际的生产过程中,和容器技术同等重要的还有容器的编排技术,比如k8s。通常在生产中docker和k8s会同时使用。
容器的缺点:容器技术是对进程级别的隔离,这必然会导致隔离的效果不如虚拟机,而且在容器中我们是无单独修改一个容器中的时间的。
02_docker中常用命令
docker version
docker info
docker search tomcat
docker pull tomcat
docker images
docker rmi
docker save -o test.tar f4a6f1474591 #把一个镜像保存成文件
docker run [可选参数] image 命令
--name = "Name" 容器名字
-c 后面跟待完成的命令
-d 以后台方式运行并且返回ID,启动守护进程式容器
-i 使用交互方式运行容器,通常与t同时使用
-t 为容器重新分配一个伪输入终端。也即启动交互式容器
-p 指定容器端口 -p 容器端口:物理机端口 映射端口
-P 随机指定端口
-v 给容器挂载存储卷
docker logs 容器id
docker top 容器id
docker rm 容器id
docker kill 容器id
docker history 容器id
docker start 容器id
docker restart 容器id
docker stop 容器id
docker image inspect 容器id #查看容器内源数据
docker image inspect 镜像id
docker cp
03_在docker中挂载宿主机上的目录
1,挂载特定目录容器中
docker run -v /opt:/opt debian #宿主机的目录要使用绝对路径
2,挂载/var/lib/docker/volumes目录下的特定目录到容器中
docker run -v dvwa_div:/opt dvwa #宿主机的目录不要使用绝对路径,会自动在/var/lib/docker/volumes目录下新建一个目录
3,挂载/var/lib/docker/volumes目录下的一个随机目录到容器中
docker run -v /opt dvaw #在宿主机的/var/lib/docker/volumes目录下新建一个随机目录挂载到容器的/opt目录下