docker命令总结(持续更新)
2019-02-19 本文已影响0人
zhenx1n
目录
docker的作用
docker常用参数及命令
添加docker
删除docker
让docker在后台运行
进入在后台运行的docker
对正在运行的docker进行的一些操作
docker与主机之间传输文件
对正在运行的容器添加端口映射或者更改端口映射
docker的几个网络模式
将更改内容的docker 打包并迁移
使用docker快速搭建一个WordPress站点
快速搭建漏洞环境
docker的作用
想要在linux上搭建某个特定的环境,比如搭建巡风(内网扫描), 或一个很好的ctf题而且有
docker环境, 又或者一个简单的博客等等。自己配置可能需要一天甚至几天,但是使用docker就会非常
方便,几分钟环境就搭建好了,docker会让你更专注于目标本身,而不是目标之外的其他繁杂的事情。
当然仅限于linux环境,可能docker的使用量与发量成反比。hhh
docker常用参数及命令
docker command --help 查看帮助一个命令的详细参数
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
-d Run container in background and print container ID
-i Keep STDIN open even if not attached
-t Allocate a pseudo-TTY
docker ps [OPTIONS]
-a, --all Show all containers (default shows just running)
docker ps -a 查看所有的docker容器
docker exec [OPTIONS] CONTAINER COMMAND [ARG...]
docker exec -ti contain_id/name /bin/bash 进入容器交互式的bash命令
docker run的对象是一个image, docker exec的对象是container。
添加docker
1. docker search
2. docker run -ti imageid /bin/bash
3. exit(docker 直接退出)
4. docker run -tid imageid /bin/bash (将docker以进程方式运行在后台)
删除docker
1. docker ps -a
2. docker stop containid
2. docker image rm imageid (可以不执行这条命令,这条命令直接删除镜像)
让docker在后台运行
1. docker images
2. docker run -tid imageid /bin/bash(d 相当于以进程方式运行在后台)
进入在后台运行的docker
1. docker exec -ti containid /bin/bash
2. exit (还是在后台运行)
对正在运行的docker进行的一些操作
docker stop containid (停止docker)
docker start containid (启动停止的dockerdocker)
docker restart containid (重新启动docker)
docker与主机之间传输文件
docker cp /root/file.zip containid:/tmp/file.zip
docker cp containid:/tmp/file2.zip /root/file.zip
对正在运行的容器添加端口映射或者更改端口映射
网上有很多使用iptables方法或者是重新制作镜像来实现这个功能,但是在linux上最优雅的还是直接
修改配置文件(/var/lib/docker/containers/containid/)。
service docker stop
vim hostconfig.json
portbindings: "80/TCP":[{"HostIp":"0.0.0.0","HostPort":"80"}]
vim config.v2.json
ports:{"80/TCP":[{"HostIp":"0.0.0.0","HostPort":"80"}]}
service docker restart
docker的几个网络模式
参数: --network [OPTIONS]
默认是dridge,虚拟网卡模式。
bridge 默认,使用一个虚拟网卡,这个模式下主机和容器相当于在一个虚拟网桥上。
host 和主机在同一个网络,和主机使用同一个ip,可以访问局域网。
none 不配置任何ip、网卡信息等,不常用。
container 和某个docker共享网络 --network=container:containid
将已更改内容的docker 打包并迁移
docker save containid > containid.img (保存一个未运行的container,相当于image)
docker load < containid.img
docker tag containid tag:tag
docker export containid > containid.tar (保存一个运行中或暂停的container)
cat containid | docker import - tag/tag:v1.0
使用docker快速搭建一个WordPress站点
1. docker search wordpress
2. docker pull wordpress
3. docker ps -a
4. docker -tid imageid /bin/bash
5. docker exec dockerid /bin/bash
6. which apache2
7. which php
8. find / -name "*wordpress*"
9. curl localhost(访问一下本地)
10. cp -R ./ /var/www/html
11. cd /var/www/html
12. chmod 755 -R ./
13. chown www-data:www-data -R ./
14. curl localhost -I
15. docker ps -aq 获取dockerid
16. docker stop `docker ps -aq` && docker rm `docker ps -qa` 直接删除docker
17. docker rmi imageid
快速搭建漏洞环境
以phithon牛的vulhub为例
https://github.com/vulhub/vulhub/blob/master/weblogic/CVE-2018-2894/
vim docker-compose.yml
docker-composer -d
docker-compose up -d .
(docker-composer和docker区别:docker-composer将几个封装好的docker镜像启动,比如同时需要
linux,mysql,jboss等服务,但服务不在同一个镜像上,使用配置文件docker-composer.yml来将它们
组合在一起;而docker只启动一个封装好的镜像。)