Docker学习笔记

Docker!

0x00 啥是Docker

8说了,上图:

Docker介绍

Docker的优点

0x01 环境搭建和安装

Docker既可以在windows上也可以在linux上进行安装使用,但win10需要专业版来使用hyper-v服务,家庭版也可以安装配置hyper-v,但自己弄的时候总是出现错误,于是这里就只记录使用linux的了。

本人使用的linux发行版为Ubuntu16.04版本,内核版本如下:

首先更换源

这里我使用的是阿里源。

这是更换国内源的教程

更换之后

更新apt包索引

sudo apt-get update

如果已经安装有旧版本的docker,先进行删除:

sudo apt-get remove docker docker-engine docker-ce docker.io

为了使apt可以通过https使用Repository,先安装以下包

sudo apt-get install -y apt-transport-https ca-certificates curl software-properties-common

添加Docker官方GPG密钥

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

添加源信息

sudo add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) \
stable"

再次更新下apt包索引

sudo apt-get update

确认源信息是否正确

sudo apt-cache madison docker-ce


然后。就可以

安装最新版的Docker CE:

sudo apt-get install -y docker-ce

查看docker版本:

sudo docker -v

安装成功。

0x02 常用命令介绍

  • 查看docker服务启动情况:

    sudo systemctl status docker

如未启动,启动docker服务:

sudo systemctl start docker

查找镜像:

docker search xxx

注意,docker进程使用Unix Socket而不是TCP端口。而默认情况下,Unix socket属于root用户,所以遇到permission denied的时候需要切换至root用户。

这里我查找learn :

docker search learn

下载镜像:

docker pull learn/tutorial

查看已有的镜像:

docker images

使用run命令运行:
两种用法

docker run hello-world

docker run learn/tutorial echo "helloworld!"

开启一个容器

docker run -d -p localport:dockerport imagename

-d后台运行。

查看当前运行的容器

docker ps -a

进入一个开启中的容器

docker exec -it [container id] bash

使用docker简单搭建ctf题目

首先,查找lamp镜像

docker search lamp

这里选择linode/lamp 镜像,pull下来

docker pull linode/lamp 

开启一个容器

docker run -p 89:80 -t -i linode/lamp /bin/bash

这里89是本地端口,可自己选择,80是docker虚拟端口。-t让docker分配一个伪终端并绑定到容器的标准输入上, -i则让容器的标准输入保持打开.

开启apache:

service apache2 start

此时访问localhost:89可以看到页面,说明成功。

进入存放网页的目录

cd /var/www/example.com/public_html

拷贝本地文件到网站目录(另开一终端)

docker cp /home/n4t5u/flag.php 6f8260848f43:/var/www/example.com/public_html/

成功。

找时间再写。