0x00前言
现在技术的发展是越来越快了,Docker也火了好几年了,那么Docker是什么?Docker是2013年提出发布的,它是一个虚拟化容器,用户可以在Docker里操作多个容器,而容器里是一台台装有系统的电脑。就类似于Windows的虚拟机(VMware)。Docker是由Go语言编写的,容器完全使用沙箱机制,直接相互隔离,理论上是非常安全的,但是仍存在一些漏洞(Docker逃逸)
0x01基础命令
docker可以同时操作多个容器,故先介绍一下docker的基本命令
开启docker服务
1 | systemctl start docker |
关闭docker服务
1 | systemctl stop docker |
重启docker服务
1 | systemctl restart docker |
查看docker信息(版本)
1 | docker version |
查看docker帮助
1 | docker --help |
查看容器日志
1 | docker logs containid |
查看所有容器/镜像
1 | docker ps -a //容器 |
搜索镜像
1 | docker search 镜像名 |
运行/停止镜像
1 | docker run 镜像名 -p 端口:映射端口 -d -name 容器名 //-d是守护进程 |
删除镜像/容器
1 | docker rm 容器名 |
启动容器内服务(进入某个容器)
1 | docker exec -it 镜像名 bash //bash即linux的shell命令操作 |
0x02DockerFile编写
dockerfile是为了方便构建镜像的一种文件类型,在里面使用docker特有的语句来实现程序的安装到执行
例如这个文件
1 | # Pull base image |
解释:从ubuntu官网拉取镜像,定义维护者的名字,运行系统命令echo配置源,并更新,复制src文件夹到/var/www/html目录,并删除index.html赋权限,复制httpd-foreground到/usr/bin目录,赋予权限,最后CMD执行二进制文件
0x03Docker发布和拉取
dockerhub是一个镜像托管平台,类似于平时常用的github
Dockerhub也需要创建一个账号
Docker打包
1 | docker build -t 镜像名 . //其中.代表当前路径的dockerfile |
Docker重新命名标签
1 | docker tag 标签名 新表签名 |
Docker发布镜像
1 | docker push |
Docker拉取镜像
1 | docker pull 镜像名 //默认从dockerhub上拉取 |
0x04总结
暂时记录这么多命令,以后新学的docker命令也会持续更新到文章里