docker的学习
简介
docker认识
- 举例:
以wegame为例:在没有wegame前下载游戏你需要从浏览器搜索,官网下载,各种野路子去得到想玩的游戏安装包然后下载。电脑小白会遇到各种问题,比如下载盗版误点广告找不到资源,找到后安装的时候安装到了C盘或者一大堆捆绑软件再或者安装完找不到启动图标,卸载游戏的方式就是删除桌面图标。你可以让他学习如何安装游戏和使用软件,可以但没必要,因为初衷只是为了玩游戏。所以会有wegame的诞生,有了wegame后你可以通过wegame直接搜索想玩的游戏一键下载安装就可以玩,前提是wegame里有这个游戏。 - 应用:
将上述例子应用到互联网学习,有时候我们只是想学习一下服务功能的实现一些漏洞测试,但却需要花大量的精力去部署,部署中极容易出错劝退大部分同学。docker像wegame这种模式一样为我们提供了简单便捷的部署方式使我们学习起来更快更高效。 - docker模式:
wegame docker 腾讯(放游戏的地方) 仓库(放镜像的地方) 安装包(搜索腾讯的安装包) 镜像(搜索仓库里的镜像) 游戏(安装好的安装包) 容器(安装好的镜像)
- 使用方法
个人、组织、机构等将供我们使用的应用服务或代码的镜像上传到docker仓库,我们只需要搜索镜像名下载,运行即可。或下载个人、组织、机构等提供的项目文件,在docker里创建镜像,然后运行。
docker安装
-
使用apt安装需要先安装一些软件。
sudo apt-get update sudo apt-get install \ apt-transport-https \ ca-certificates \ curl \ gnupg \ lsb-release
-
切换root用户安装上述软件
-
调整网络,访问官方源会有网络等问题,建议使用国内源并添加软件源GPG密钥,确保下载软件的合法性。
curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
-
将docker源添加到sources.list
echo \ "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://mirrors.aliyun.com/docker-ce/linux/ubuntu \ $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
-
开始安装
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io
-
安装测试
docker run --rm hello-world
-
出现一下内容表示安装成功。
docker加速
-
毕竟不是国内的软件,网速很头疼这里推荐使用阿里的加速器。传送门 ------ 阿里云。
-
注册一个阿里云账号,别嫌麻烦这很管用,然后访问镜像加速器。传送门 ------ 镜像加速器。
-
按上面的顺序,点击阿里云注册,然后点击镜像加速器会显示下面的页面,按步骤操作。
docker常用命令
- 以下命令可以解决大部分使用需求,无法解决可以参考链接: docker命令大全。
docker search 镜像 # 查找镜像
docker pull 镜像 # 下载镜像
docker run -d -p 66:80 镜像id # 启动镜像
-d 后台运行
-p 指定端口映射 66(映射端口):80(docker端口)
docker images # 查看镜像
docker ps -a # 查看运行的容器具体信息
docker exec -it id /bin/bash # 在运行的容器中执行bash
docker stop 容器名 # 停止运行
docker start 容器名 # 启动容器
docker rm 容器名 # 删除容器
docker rmi 镜像 # 删除镜像
docker使用实列一
- 以渗透靶机pikachu为例。
- 在rocker仓库里查找pikachu镜像。
docker search pikachu
- 下载镜像。
docker pull area39/pikachu
- 查看已下载的镜像。
docker images
- 启动镜像,
镜像启动后称它为"容器"
docker run -d -p 1234:80 28e6ebc041de
- 查看运行中的容器。
docker ps -a
- 浏览器访问:ip:1234
#1234端口为启动时映射的端口
- 至此我们部署一个搭建好的漏洞平台一共用了三条命令。
docker使用实列二
- 上一个方法是在docker仓库下载镜像文件,新手同学会遇到一些问题。
搜索到的镜像文件太多不确定下载哪一个
映射端口时不知道服务开启的是哪个端口等...
- 我们可以选择另一种方式,下载作者写好的项目文件,在docker里创建镜像运行。
- 以pikachu平台为例下载项目文件。
项目文件可以通过百度、github或者关注作者等方式获取链接
git clone https://github.com/zhuifengshaonianhanlu/pikachu
- 进入下载的pikachu文件。
- 使用 Dockerfile 创建镜像。
docker build -t 镜像名 .
# 镜像名可以随便起,后面的点一定要写。
- 查看镜像可以发现上一步以mi命名的镜像创建成功了。
- 启动运行等操作和上一步一样。
docker操作补充
进入bash命令
- 上面示例中我们部署好环境但还需要我们连接数据库,或者你想修改某一页代码我们可以进入容器执行bash。
docker exec -it 容器id /bin/bash
# exit 退出bash命令。
启动与停止
- 防止过多占用资源容器使用完毕可以关闭,使用时再开启。
docker stop 容器id
docker start 容器id
删除容器和镜像
- 没有整理习惯或者不会删除的同学,docker看着简直无法入眼,乱八七糟,内存占满了也不知道。有些同学选择卸载重装docker,还有一部分不知道是docker的问题直接重装系统。
据真实事件记录
- 暂时不用的容器记得stop。
- 已经不用的记得删除。
- 删除步骤:stop容器,删除容器,删除镜像。
删除容器强调一点,有的镜像不只启动了一个容器,要找到所有启动的容器都删除,然后才能删除镜像
一定要按顺序删除。
修改容器名
docker rename 原名称 修改后的名称
修改镜像名
docker tag 镜像ID 要修改的名称