docker - 图1

Docker 安装

Ubuntu、Kali/Debian、CentOS 下的安装,

Ubuntu/CentOS 安装 Docker

Ubuntu Linux 系统耳熟能详的操作系统。

  1. curl -fsSL get.docker.com -o get-docker.sh
  2. sudo sh get-docker.sh --mirror Aliyun

Kali/Debian 安装 Docker

Kali 是基于 Debian 封装的,所以两者安装方法大同小异。
Kali Linux 安装 Docker 用网上那个一键安装脚本貌似有点问题,这里单独记录一下,以便自己和其他网友使用:

  1. # 添加Docker PGP密钥
  2. curl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key add -
  3. # 配置docker apt源 我这里用的国内阿里云的docker下载源
  4. echo 'deb https://mirrors.aliyun.com/docker-ce/linux/debian buster stable'> /etc/apt/sources.list.d/docker.list
  5. # 更新apt源
  6. apt update
  7. # 如果之前安装了docker的话 这里得卸载旧版本docker
  8. apt remove docker docker-engine docker.io
  9. # 安装docker
  10. apt install docker-ce
  11. # 查看版本
  12. docker version

开机自启

  1. sudo systemctl enable docker
  2. sudo systemctl start docker

Docker 优化

Docker 国内加速器

不替换源对话,docker pull 拉去镜像对速度实在太龟速了,如果你很佛系对话可以不进行更换

  1. # 编辑这个文件,如果没有对话就创建这个文件
  2. vim /etc/docker/daemon.json

内容如下:

Json

  1. {
  2. "registry-mirrors": [
  3. "http://hub-mirror.c.163.com"
  4. ]
  5. }

这里我使用对是国内163网易源,其他源可以自行百度替换。
配置完成后重启服务才可以生效:

  1. sudo systemctl daemon-reload
  2. sudo systemctl restart docker

Docker Portainer

Portainer 是 Docker 一款可视化管理用具,用起来更加容易上手,部署的话也十分简单。

  1. # 拉取镜像
  2. docker pull portainer/portainer
  3. # 一键部署
  4. docker volume create portainer_data
  5. docker run -d -p 9000:9000 --name portainer --restart always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer

浏览器访问本地的9000端口即可进入到设置密码界面,设置一个密码,即可进入系统:

docker - 图2

这里选择管理本地 Docker 的选项,点击就可以看到比较容易理解的 Docker 管理即界面了。

DockStation

官网地址:DockStation - Developing with Docker has never been so easy and convenient

一个 Docker 的图形化客户端管理工具,支持 Windows、Linux、macOS,因为现在 Windows 和 macOS 自带的 docker desktop 功能越来越强,所以这个 DockeStation 在 Linux 上还是比较方便的,感兴趣的同学可以体验一下:

docker - 图3

Docker 命令

基础

搜索镜像 docker search 关键词

下载镜像 docker pull 镜像名

查看已下载的镜像列表 docker image ls

创建并使用容器 docker run -it --name 容器名 镜像名/镜像ID /bin/

查看当前容器 docker ps -a

统计信息 docker stats

启动容器 docker start 容器名/容器ID

重启容器 docker restart 容器名/容器ID

终止容器 docker stop 容器名/容器ID

终止所有容器 docker stop $(docker ps -aq)

连接容器 docker exec -it 容器名/容器ID /bin/

删除容器 docker rm 容器名/容器ID

删除所有容器 docker rm $(docker ps -aq)

删除镜像 docker rmi 镜像名/容器ID

删除所有镜像 docker rmi $(docker images -q)

端口映射

部署一个容器,并将80端口映射到宿主机的8000端口上

  1. # 可以使用--name自定义部署的容器名
  2. docker run -d -p 8000:80 --name 容器名 镜像名
  3. # 也可以直接通过镜像部署
  4. docker run -d -p 8000:80 镜像名

dockerfile 部署镜像

  1. docker build -t 自定义镜像名称 .

docker-compose 部署

  1. docker-compose up -d

构建新的镜像

  1. docker commit -a "提交的镜像作者" -m "提交时的说明文字" 容器的ID 要创建的新的镜像
  2. docker commit -a "国光" -m "wordpress_phpmyadmin" d64655e87ccc wordpress_phpmyadmin:v1

保存离线镜像

  1. docker save -o 镜像文件名.tar 要保持的镜像
  2. docker save -o wordpress_phpmyadmin.tar wordpress_phpmyadmin:latest

导入离线镜像

  1. docker load --input 镜像文件名.tar
  2. docker load --input wordpress_phpmyadmin.tar

挂载卷

看下面的这个案例理解一下就明白了:

  1. docker run -d -p 9088:80 --name wordpress_phpmyadmin -v "`pwd`/mysql":/var/lib/mysql/ -v "`pwd`/app":/app/ wordpress_phpmyadmin:latest

Docker compose

docker compose 神器,国内的 vulhubs 靶场就是用的 docker compose 规范,所以这里有必要安装一下。
首先来查看最新版本 https://github.com/docker/compose/releases

我写这篇文章的时候目前是 1.25.0-rc2 版本,具体根据新版本的变化自行调整下面命令来安装:

  1. # 下载docker-compose
  2. curl -L https://github.com/docker/compose/releases/download/1.25.0-rc2/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
  3. # 给docker-compose执行权限
  4. chmod +x /usr/local/bin/docker-compose
  5. # 查看docker compose版本
  6. root@kali-linux:~# docker-compose version
  7. docker-compose version 1.25.0-rc2, build 661ac20e
  8. docker-py version: 4.0.1
  9. CPython version: 3.7.4
  10. OpenSSL version: OpenSSL 1.1.0k 28 May 2019

*_文章作者:_ 国光

*_文章链接:_https://www.sqlsec.com/2019/10/docker2.html