起因
最近搭建了vulhub靶场(ubuntu+docker+Vulhub),突然感觉docker如此好用,于是专门看了一些docker,做一下笔记
本文参考了菜鸟教程docker教程和docker国内镜像加速
简介
Docker 是一个开源的应用容器引擎,基于Go语言。学习Docker需要先掌握linux的基本命令。
应用场景
- Web 应用的自动化打包和发布。
- 自动化测试和持续集成、发布。
- 在服务型环境中部署和调整数据库或其他的后台应用。
- 从头编译或者扩展现有的 OpenShift 或 Cloud Foundry 平台来搭建自己的 PaaS 环境。
优点
快速,轻便,可移植性强
基本概念
镜像,容器,仓库
镜像与容器的关系
菜鸟教程上理解的方法是用面向对象的思想,相当于类和实例,镜像是静态的定义,容器是运行时的实体。
个人理解就是,就像在windows下安装虚拟机一样,docker中的镜像相当于win下的IOS镜像文件,容器相当于实际安装好的虚拟机,可以用一个ios镜像安装几个虚拟机,并且不同虚拟机里的东西不一样。
仓库
Docker Registry,用来保存镜像,可以理解为代码控制中的代码仓库。
一个 Docker Registry 中可以包含多个仓库(Repository);每个仓库可以包含多个标签(Tag);每个标签对应一个镜像。
安装卸载
Windows上直接官网下载安装包安装
俺主要在ubuntu上用
一条命令自动安装,简单易操作
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
或者
curl -sSL https://get.daocloud.io/docker | sh
卸载
sudo apt-get remove docker docker-engine docker.io containerd runc
Docker镜像加速
Linux下
默认没有,所以新建/etc/docker/daemon.json文件
写入内容:
{
"registry-mirrors": [
"https://ung2thfc.mirror.aliyuncs.com ",
"https://registry.docker-cn.com",
"http://hub-mirror.c.163.com",
"https://docker.mirrors.ustc.edu.cn"
]
}
然后执行命令
systemctl demon-reload
systemctl restart docker
Windows下
Settings -> Docker Engine
如下:
{
"registry-mirrors": ["https://ung2thfc.mirror.aliyuncs.com "],
"insecure-registries": [],
"debug": false,
"experimental": false,
"features": {
"buildkit": true
}
}
开始使用
按照传统,先来个Hello World!
docker run ubuntu echo "Hello World!"
搜索镜像,拉取镜像
docker search tomcat
docker pull tomcat
只是拉取镜像
docker run
会拉取镜像并生成容器
容器操作
docker ps
docker ps -a
查看运行中的容器
docker rm xxx
删除容器
操作镜像
docker images
查看所有镜像
docker rmi xxx
删除镜像(提前删除容器)
进入容器
docker run ubuntu bash
docker exec -it xx bash
docker 命令大全
docker资源汇总
这是基础学习,暂时够用,之后会在学一下制作镜像