docker简单使用学习
docker简介
Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows操作系统的机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。
docker和虚拟机的区别
启动时间:docker秒级,虚拟机分钟级
轻量级:docker镜像大小以M为单位虚拟机以G为单位,容器占用资源小比虚拟机部署快
性能:docker共享宿主机内核,系统级虚拟化,占用资源少,没有hypervisor层开销,性能基本接近物理机,虚拟机需要hypervisor层支持,虚拟化一些设备,具有完整的os,虚拟化开销大,因而降低性能,没有容器性能好
安全性:docker共享宿主机内核只是进程级别的隔离,因此隔离性和稳定性不如虚拟机,docker具有一定权限访问宿主机内核,存在安全隐患
使用要求:vm基于硬件的完全虚拟化,需要硬件cpu虚拟化技术支持,docker共享宿主机内核,可运行在主流的linux发行版本,不用考虑cpu是否支持虚拟化技术。
docker原理
将下载的docker镜像创建并部署到docker容器(是docker的执行单元)中启动即可。
docker安装并部署vulstudy靶场
在deepin中执行sudo apt-get update和sudo apt-get install docker.io
在安装docker-compose
|
并赋予可执行权限
sudo chmod a+rx /usr/local/bin/docker-compose
然后测试是否安装成功。
docker-compose -v
配置拉取镜像源
修改etc/docker/daemon.json 没有就创建然后添加国内相关源
从vulstudy的github仓库下载镜像然后使用命令部署
|
docker的其他基础命令
搜索镜像docker search 关键字
下载镜像docker pull 镜像名
查看已下载的镜像列表docker image ls
创建并使用容器docker run -it --name 容器名 镜像名/镜像id /bin/bash
查看当前容器docker ps -a
查看统计信息docker stats
启动容器docker start 容器名/容器id
重启容器docker restart 容器名/容器id
终止容器或所有容器docker stop 容器名/容器id|$(docker ps -aq)
连接容器docker exec -it 容器名/容器id /bin/bash
删除容器或所有容器docker rm 容器名/容器id|$(docker ps -aq)
删除镜像或所有镜像docker rmi 镜像名/容器id|$(docker images -q)
端口映射:
部署一个容器并将80端口映射到宿主机的8000端口上
|
构建新的镜像
|
保存离线镜像
|
导入离线镜像
|