PS: 你可以把镜像理解为一个Java类,而容器则是这个类创建的一个实例。
查询镜像
# 搜索跟centos相关的镜像
docker search centos
拉取镜像
docker pull centos
启动容器
docker run -dit -name 容器名 镜像名 /bin/bash
启动容器,容器退出后删除该容器
docker run -dit --rm -name 容器名 镜像名 /bin/bash
端口映射
#本地端口:容器端口
docker run -dit -p 8080:8080 --name 容器名 镜像名 /bin/bash
进入容器
docker exec -it 容器名 /bin/bash
查看容器日志
docker logs -f 容器名
查看容器的IP地址
docker inspect --format='{{.NetworkSettings.IPAddress}}' 容器名
推送镜像
# username为你docker账号的用户名
docker push username/ubuntu:17.10
查看容器信息
docker inspect 容器名
删除已退出的容器
docker rm `docker ps -a|grep Exited|awk '{print $1}'`
删除全部容器
docker stop $(docker ps -q) & docker rm $(docker ps -aq)
删除镜像
docker rmi 镜像id
创建一个docker网络
docker network create -d bridge my-net
运行一个容器并连接到新建的网络
docker run -it --name 容器名 --network my-net 镜像名 /bin/bash
挂载本地目录
# 将当前目录,挂载到容器的/app/demo目录中
docker run -it -d --name 容器名 -v ./:/app/demo 镜像名 /bin/bash
保存镜像
docker save alpine | gzip > alpine-latest.tar.gz
加载保存的镜像
docker load -i alpine-latest.tar.gz
导出容器
docker export 7691a814370e > ubuntu.tar
从容器快照中导入为镜像
cat ubuntu.tar | docker import - test/ubuntu:v1.0
清理所有处于终止状态的容器
docker prune