前言
从去年十月接触docker容器,到现在已有半年多,期间出过几道CTF题,对部分docker指令已经产生了肌肉记忆,但对一些常用度较低的还需现用现查,这里做一下整理,方便速查。swarm和machine为新了解的内容,也做一下记录。
docker指令
镜像
docker search 镜像名
在dockerhub查找镜像docker pull 镜像名
下载镜像docker rmi 镜像名
删除镜像docker images
查看本地镜像docker build -t 镜像名:标签 -f Dockerfile文件路径 .
构建镜像
容器
docker run 镜像名
创建容器,执行默认操作docker run -it -p 主机端口号:容器端口号 镜像名 /bin/bash
创建容器,进入shelldocker run -d 镜像名
后台创建容器,执行默认操作docker exec -it 容器名 /bin/bash
进入正在运行容器的shelldocker stop 容器名
停止容器docker start 容器名
启动容器docker ps [-a]
查看已有容器docker rm [-f] 容器名
删除容器docker commit 容器名 镜像名
将容器提交保存为镜像docker cp <主机目录 容器:目录>(<容器:目录 主机目录>)
容器与主机间文件操作
docker-compose指令
docker-compose up
启动服务docker-compose ps [-a]
查看服务docker-compose stop
关闭服务docker-compose down
清除容器
Dockerfile
1 | FROM 镜像名:标签 |
docker-compose.yml
1 | version: "3" |
docker-machine
docker-machine create -d virtualbox 机器名
创建主机docker-machine create -d virtualbox --help
docker-machine env 机器名
查看主机信息docker-machine ls
查看已有主机docker-machine ssh 机器名
进入主机shelldocker-machine stop 机器名
关闭主机docker-machine start 机器名
开启主机docker-machine restart 机器名
重启主机docker-machine rm 机器名 [--force]
删除主机docker-machine scp
主机与宿主机间文件操作
docker swarm
docker swarm init --advertise-addr 主机ip
管理节点初始化集群docker swarm join --token 管理节点的token
工作节点加入集群docker node ls
查看集群docker service create --replicas 3 -p 80:80 --name 服务名 镜像名
新建服务docker service ls
查看服务docker service ps 服务名
查看服务信息docker service logs 服务名
查看服务日志docker service scale 服务名=数量
服务伸缩docker service rm 服务名
删除服务docker stack deploy -c compose文件 服务名
使用compose文件新建服务docker stack ls
查看服务docker stack down
移除服务docker service update 服务名 -h
更新服务docker service rollback 服务名
回退服务