Docker的安装与使用

0x01 Docker的定义

Docker是一个开源的引擎,可以轻松的为任何应用创建一个轻量级的、可移植的、自给自足的容器。Docker是一个基于Go语言开发的开源应用容器引擎,已经形成比较成熟的生态圈,让开发者可以打包自己的应用以及依赖包到一个轻量级的容器。Docker非常适合于搭建用于学习与实验的安全测试漏洞靶机。

0x02 Docker认识

镜像 、容器、 仓库

  1. 镜像(image)
    Docker 镜像就是一个只读的模板,镜像可以用来创建 Docker 容器。Docker 提供了一个很简单的机制来创建镜像或者更新现有的镜像,用户甚至可以直接从其他人那里下载一个已经做好的镜像来直接使用。镜像是一种文件结构。Docker官方网站专门有一个页面来存储所有可用的镜像,网址是:index.docker.io。

  2. 容器 (Container)
    容器是从镜像创建的运行实例。它可以被启动、开始、停止、删除。每个容器都是相互隔离的、保证安全的平台。可以把容器看做是一个简易版的 Linux 环境,Docker 利用容器来运行应用。

  3. 仓库
    仓库是集中存放镜像文件的场所,仓库注册服务器(Registry)上往往存放着多个仓库,每个仓库中又包含了多个镜像,每个镜像有不同的标签(tag)。目前,最大的公开仓库是 Docker Hub,存放了数量庞大的镜像供用户下载。

Docker仓库用来保存我们的images,当我们创建了自己的image之后我们就可以使用push命令将它上传到公有或者私有仓库,这样下次要在另外一台机器上使用这个image时候,只需要从仓库上pull下来就可以了。注意:Docker不是容器,而是管理容器的引擎!

0x03 Docker 的安装

1.Docker需要安装在Linux Kernels 大于3.10 并且是 64-bit的机器,用uname -a 可以查看是否符合要求。
2.执行命令编辑文本 vim /etc/apt/sources.list.d/backports.list,加入以下代码

deb http://http.debian.net/debian wheezy-backports main

然后刷新源:apt-get update
如果有安装过docker,则先删除就版本的docker

apt-get purge lxc-docker*
apt-get purge docker.io*
apt-get update

3.确认apt添加了https方法和CA cerificates

apt-get install apt-transport-https ca-certificates

4 .添加一个新的GPG key

apt-key adv --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys 58118E89F3A912897C070ADBF76221572C52609D
  1. 编辑文件: vim /etc/apt/sources.list.d/docker.list(没有见创建),因为Kali2.0是基于Debian Wheezy版本,所以加入以下代码:
deb https://apt.dockerproject.org/repo debian-wheezy main
#On Debian Jessie
#deb https://apt.dockerproject.org/repo debian-jessie main
#On Debian Stretch/Sid
#deb https://apt.dockerproject.org/repo debian-stretch main

保存,然后更新apt-get update
6. 确认张雀安装repository

apt-cache policy docker-engine

7.正式安装

apt-get update & apt-get install docker-engine
#安装结束打开docker服务
service docker start
# 验证安装,运行测试样本
docker run hello-world
#如果不报错,就说明安装成功了

0x04 docker基础命令

docker基础命令包含docker操作、镜像操作、容器操作以及其他相关操作,以下列举了一些常用的命令,更多请参考官方文档,或者使用–help命令查看

docker操作

docker info 查看docker信息
docker -v 查看docker版本

镜像操作

docker images -a 可以查看本地所有的镜像
docker search image_name 搜索相应的镜像
docker pull image_name 下载相应的镜像
docker push image_name 将镜像推送到registry,可以推送到docker hub的publilc 、private以及私服
docker rmi image_name 删除一个或者多个镜像
docker history image_name 显示一个镜像的历史
docker tag image-id imagename:tag 修改镜像的tag标签
docker load -i test.tar 从tar文件中载入镜像
docker save image > test.tar 保存镜像为tar文件
docker run –ti image_name/ID 运行镜像(-ti 进入交互模式)

容器操作

容器类似一个轻量级的沙箱,可以利用容器来运行和隔离应用,容器从镜像启动时会在镜像的最上层创建一个可写层,镜像本身保持不变

docker create -it centos 创建容器
docker run --rm -ti centos /bin/bash 容器创建并启动
#–rm 一旦进程退出,则删除容器
#-ti 进入交互模式
#ubuntu 容器立足的镜像名字
#/bin/bash 要运行的命令
docker run image_name echo “hello word” 在容器中运行“echo”命令,输出 “hello word”
docker run image_name apt-get install -y new_name 在容器中安装新的程序
docker ps -a 显示所有的容器 ,包括已经stop的
docker inspect 容器id(容器名)查看容器的具体信息
sudo docker inspect --dormat ‘{{.NetworkSettings.IPAddress}}’ 容器id(容器名) 查看容器的ip地址
docker inspect --format=‘{{.Name}} - {{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}’ $(docker ps -aq) 列出所有容器的IP
docker top 容器id 查看容器的进程
docker attach 容器id 进入容器内部 (退出容器;exit,此命令进入退出后容器即停止了)
docker exec -it 容器id /bin/bash
docker start 容器id(容器名)启动单个容器
docker kill 容器id(容器名) 杀死单个容器
docker rm $(docker ps -a -q)删除所有的容器
docker rm 容器id(容器名) 删除单个容器 (rmi是删除镜像,rm是删除容器)
docker logs -f 容器id(容器名) 查看容器的日志

映射主机到容器的端口和目录

-p host_port:contain_port 端口映射
-p 8081:8081 这个即是在默认的情况下,绑定主机的所有网卡(0.0.0.0)的11211端口到容器的8081端口上
-p 127.0.0.1:8081:8081 只绑定localhost这个接口的8081端口
docker run -d -p 8081:8081 images 目录映射其实是“绑定挂载”主机的路径到容器的目录,内外传输文件,绑定多个目录时增加多-v。

docker run -it -d -p 8080:80 --name 别名 镜像 (把docker的80 端口映射到真机的8080端口)
-v <host_path:container_path>

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值