Docker 速查表
docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口
一般使用
在后台启动一个容器
docker run -d jenkins
启动一个交互式容器
docker run -it ubuntu bash
启动一个(在停止时自动删除)的容器
docker run --rm ubuntu bash
启动一个映射端口的容器
docker run -p 80:80 -d nginx
启动一个命名的容器
docker run --name mydb redis
启动一个停止的容器
docker start mydb
停止一个容器
docker stop mydb
启动一个容器并添加元数据
docker run -d \ label=traefik.backend=jenkins jenkins
Build Images
从当前目录下的dockerfile构建一个镜像
docker build --tag myimage .
强制重建一个镜像
docker build --no-cache .
将容器转换为镜像
docker commit c7337 myimage
删除所有未使用镜像
docker rmi $(docker images -q -f "dangling=true")
Debug
登陆一个正在运行的容器
docker exec -it c7337 docker
显示运行守护进程容器的活动日志
docker logs -f c7337
显示容器的暴露端口
docker port c7337
Volumes
创建一个本地卷
docker volume create --name myvol
在容器启动时挂载一个卷
docker run -v myvol:/data redis
摧毁一个卷
docker volume rm myvol
列出所有卷
docker volume ls
创建一个本地网络
docker network create mynet
在启动时将容器连接到网络
docker run -d --net mynet redis
将容器连接到指定网络
docker network connect mynet c7337
断开容器与网络的连接
docker network disconnect mynet c7337
容器管理
列出运行容器
docker ps
列出所有容器(包括运行中和停止的)
docker ps -a
检查容器的元数据
docker inspect c7337
列出本地所有可用镜像
docker images
删除所有停止的容器
docker rm $(docker ps --filter status=exited -q)
列出所有带有特定标签的容器
docker ps --filter label=traefik.backend
查询正在运行中带有特定元数据的容器
docker inspect -f '{{ .NetworkSettings.IPAddress }}' c7337
说明
镜像名
redis, jenkins, nginx
容器名或者提交ID
mydb #容器名
c7337 #提交ID