PS:第一个难点是网络的配置,要保证xshell可以连接虚拟机的同时,虚拟机可以访问外部网络(ping www.baidu,com)可以ping通
环境的部署:
先安装xshell,与centos 7 docker是安装在centos7 上然后通过xshell去访问。
参考结果如下图:
Docker的安装:
[root@localhost user]# uname -r
3.10.0-1160.el7.x86_64
推荐环境为上述环境:
打开docker的帮助文档学习如何去安装:
注意必须是centos 7
卸载旧版本:
yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
我之前没有安装过,所以显示没有
安装基本环境:
yum install -y yum-utils
设置镜像的仓库:
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
千万不要这样下载,很慢的
更换阿里云
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
安装成功
更新yum包的索引:
yum makecache fast
安装docker的额
yum install docker-ce docker-ce-cli containerd.io
启动docker
systemctl start docker
docker run hello-world
阿里云镜像加速:
每个人的都不一样,自行申请就行
然后配置:
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://vf5mxdwe.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
回顾docker run的流程
run命令的流程:
没有
底层原理:
docker如何工作:
docker是一个client-server结构的系统,守护在被部署的整机上,通过socket从客户端访问,docker,就会去执行收到的命令:
docker为什么比vm快:docker的抽象层比较少
docker的常见命令
docker version #显示版本信息:
docker info #显示docker的系统信息:
docker 命令 --help #万能
也可以官网查帮助文档:https://docs.docker.com/engine/reference/commandline/image/
镜像命令:
docker iamges #显示所有镜像
docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
hello-world latest 9c7a54a9a43c 4 months ago 13.3kB
REPOSITORY 镜像的仓库源
TAG 镜像的标签
IMAGE ID 镜像的id
CREATED 创建的时间
SIZE 大小
-a,--all #列出所有的镜像
-q,--queit #只显示id
docker search #搜索功能
docker pull #下载
[root@localhost ~]# docker pull mysql
Using default tag: latest #不加tag,下载最新版本
latest: Pulling from library/mysql
72a69066d2fe: Pull complete #分层下载,共用
93619dbc5b36: Pull complete
99da31dd6142: Pull complete
626033c43d70: Pull complete
37d5d7efb64e: Pull complete
ac563158d721: Pull complete
d2ba16033dad: Pull complete
688ba7d5c01a: Pull complete
00e060b6d11d: Pull complete
1c04857f594f: Pull complete
4d7cfa90e6ea: Pull complete
e0431212d27d: Pull complete
Digest: sha256:e9027fe4d91c0153429607251656806cc784e914937271037f7738bd5b8e7709
Status: Downloaded newer image for mysql:latest
docker.io/library/mysql:latest #文件的真实地址
docker rmi #删除镜像
容器命令:
docker pull centos #安装一个容器来学习
docker run[] image
--name #容器名字
-d 后台方式运行
-it #交互方式运行
-p #指定端口
docker ps #列出所有运行的容器
centos没有进程,后台启动完毕后就关闭了。
基本上简单的docker就介绍到这里
主要用docker 来部署ctf题目
搭建题目自然少不了web服务器环境,这里使用lamp镜像,(L代表Linux,a代表apache,m代表mysql,而p代表php)使用docker search lamp命令,发现有很多种,我们用tutum/lamp。
docker run -d -p 2333:80 tutum/lamp
之后在其镜像的根目录下:/var/www/html/
配置 index.php与flag.php
可以看出搭建成功。