前言
第一次接触docker是一年前的国赛,我和小伙伴们费尽九牛二虎之力打进了线下赛,线下总决赛要求选手自己制作靶场环境,使用docker部署,向大赛主办方提供docker file和功能一键check脚本,也就是从那时起,我接触到了docker这个神奇的东西。这次专门学习docker也是因为要部署一个CTFd平台,手动操作实在麻烦,于是就想起了docker的一键部署,所以就有了这篇水文。
什么是docker?
Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。
简单来说,docker提供了一个极为自动化的解决方案,以帮助用户一键运行服务而不需要进行任何额外的操作。
一些经常用到的东西
安装docker
sudo apt install docker.io
基本操作
命令 | 说明 |
---|---|
docker version | 查看docker版本 |
docker ps | 列出正在运行的docker容器 |
docker ps -a | 列出所有的docker容器 |
docker pull image_name | 拉取镜像 |
docker rm ID | 删除docker容器 |
docker rmi image_name | 删除docker镜像 |
docker start/stop/restart ID | 启动、停止、重启某个容器 |
docker exec -it ID /bin/bash | 打开容器的终端 |
如何在容器与本地之间 copy 文件?
从容器到本地:
docker cp :/path_in_docker /path_in_server
从本地到容器:
docker cp /path_in_server :/path_in_docker
更换docker源为国内源
鉴于国内特殊的网络状况,docker官方源的下载速度简直可以用龟速来形容。所以我这里选择使用中科大源,具体操作如下:
修改 /etc/docker/daemon.json 文件,如果文件不存在则手动新建,文件内容如下:
{
"registry-mirrors" : ["https://docker.mirrors.ustc.edu.cn"]
}
修改完成后,重启docker服务
sudo service docker restart