安装docker

sudo apt install docker.io

问题解决

0x01 运行docker-compose 命令报错解决办法

-bash: docker-compose: command not found
  • 安装
先安装 pip ,检查是否已有: pip -V 
  • 报错
-bash: pip: command not found
  • 安装 pip
sudo apt-get install epel-release
sudo apt-get install python-pip
  • 升级
pip install --upgrade pip
  • 安装Docker-Compose
pip install docker-compose
  • 检查是是否成功
docker-compose -version

0x02 使用docker-compose报错找不到 ssl_match_hostname解决办法

  • 进入backports模块路径
cd /usr/local/lib/python2.7/dist-packages
  • 复制整个包到transport包路径下
cp -r backports /usr/local/lib/python2.7/dist-packages/docker/transport

0x03 使用systemctl start docker启动docker报错解决

  • 报错内容
Job for docker.service failed because the control process exited with error code. See "systemctl status docker.service" and "journalctl -xe" for details.
  • 解决办法

    • 添加如下内容

      vim /etc/docker/daemon.json
      { "graph": "/mnt/docker-data", "storage-driver": "overlay" }

常用命令

启动

 systemctl start docker

守护进程重启

  sudo systemctl daemon-reload

启动docker服务

systemctl restart  docker
sudo service docker restart

关闭docker

service docker stop   
systemctl stop docker

重启所有容器

docker restart $(docker ps -a -q)

获取容器列表

docker image 

删除本地容器

#image还有其他使用方式,直接输入docker image就能查看
docker image rm XXXX

进入docker容器

#775c7c9ee1e1为使用docker ps 查到的id,不通的容器id不通
docker exec -it 775c7c9ee1e1 /bin/bash

查看运行的容器

docker ps

按条件删除镜像

docker rmi --force `docker images | grep doss-api | awk '{print $3}'`    //其中doss-api为关键字

拷贝文件

把当前目录的123.txt拷贝到775c7c9ee1e1容器的/home/user/目录中

docker cp 123.txt  775c7c9ee1e1:/home/user/

上传容器

#打包容器144c85d3cbda为你运行容器的id
docker commit -a "medusabot" -m "test" 144c85d3cbda ascotbe/medusabot
#上传你打包好的容器
docker push ascotbe/medusabot

离线安装docker

查看在已经拉取好的镜像中

ascotbe@orange~ docker image ls
REPOSITORY TAG IMAGE ID CREATED SIZE
ascotbe/medusa latest 269496ef8d27 2 weeks ago 1.46GB
secfa/docker-awvs latest cf9837c7d702 5 months ago 1.02GB
ubuntu 20.04 4e2eef94cd6b 6 months ago 73.9MB

使用docker save命令对镜像进行打包:

ascotbe@orange~ docker save -o medusa.tar ascotbe/medusa:latest
ascotbe@orange~ ls -trl medusa.tar
-rw------- 1 ascotbe staff 1510135808 2 22 10:52 medusa.tar

把镜像上传到服务器解压即可在docker image ls中查看

docker load -i medusa.tar 

停止所有的容器

docker stop $(docker ps -aq)

删除所有的容器

docker rm $(docker ps -aq)

删除所有的镜像

docker rmi $(docker images -q)

查询所有运行过的容器

cd /var/lib/docker/containers
ll
#也可以直接使用命令
docker container ls -a
#XXXXXXXXX是要查询的容器ID
docker inspect XXXXXXXXX

启动已经停止的容器

root@medusa:~# docker container ls -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
bf3c2e9a9234 medusa_web "/bin/sh -c ./run.sh" 28 minutes ago Exited (137) 10 minutes ago medusa2
f4effd7ce8bb medusa_web "/bin/sh -c ./run.sh" 5 weeks ago Up 10 minutes medusa
root@medusa:~# docker container start f4effd7ce8bb
f4effd7ce8bb

资源

  • 一些渗透容器网站
https://github.com/vulhub/vulhub/
https://hub.docker.com
http://vulapps.evalbug.com/