概念
Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。
一个完整的Docker有以下几个部分组成:
(1)Docker Client客户端
(2)Docker Daemon守护进程 (服务端)
(3)Docker Image镜像
(4)Docker Container容器
User发送命令给Docker客户端,如:docker pull、docker run
Docker客户端转发命令给宿主机上的Docker守护进程
Docker守护进程接收执行命令,返回命令执行结果
Docker服务端(守护进程)负责管理宿主机上的各个容器
docker 客户端非常简单 ,我们可以直接输入 docker 命令来查看到 Docker 客户端的所有命令选项
沙箱机制是一种安全机制,设计原理就是只能允许自己的应用访问目录,而不允许其他的应用访问
命令
docker ps 查看当前正在运行的容器
docker ps -a 查看所有容器的状态
docker images 查看本地镜像
docker rm containerID/containerName 删除容器
docker rmi imageID/imageName 删除镜像
docker start containerID/containerName 启动容器
docker stop containerID/containerName 停止容器
docker attach containerID/containerName 进入运行中的容器
docker exec -it containerID /bin/bash 进入运行中的容器
docker pull imageRepo 从镜像仓库中获取imageRepo最新版镜像
docker pull -a imageRepo 从镜像仓库中获取REPOSITORY为imageRepo的所有镜像
采用镜像imageName新启动一个容器:
docker run -it -v /localpath:/data -w /data -p 2222:22 -h container_hostname --name mycontainer imageName
run参数说明:
-i: 以交互模式运行容器,通常与 -t 同时使用;
-t: 为容器重新分配一个伪输入终端,通常与 -i 同时使用;
-v: 目录映射,格式为:主机(宿主)目录:容器目录
-w: 启动容器后,进入容器时的目录
-p: 端口映射,格式为:主机(宿主)端口:容器端口
-h: 指定容器的hostname;
--name: 为容器指定一个名称;
-d: 后台运行容器,并返回容器ID;
--link=[]: 添加链接到另一个容器;