查看当前仓储的image
docker images
运行container (带交互终端tty)
docker run -it [repository:tag] [command]
或
docker run -it [image id] [command]
例如
docker run -it test/example:1.0 /bin/bash
docker run -it 03472745dfcb /bin/bash
运行container (映射到外网端口)
docker run -p [port:port] [repository:tag]
例如:
docker run -p 8080:80 test/example:1.0
查看当前运行的container
docker ps 或 docker container ls
包含已经停止的
docker ps -a 或 docker container ls -a
删除已经停止的container
docker container prune
或
docker rm $(docker ps -a -q)
注:docker ps -a -q 会列出所有的container id, 如果正在运行的是删除不掉的
导出和导入image
导出:
docker save -o [filename] [image]
示例:
docker save -o aspnet.tar mcr.microsoft.com/dotnet/core/aspnet:3.1-buster-slim
导入:
docker load<[filename]
示例
docker load<aspnet.tar
如果导出更小体积的文件,可使用gzip压缩
docker save [image] | gzip > [filename].tar.gz
解压 gzip -d [filename].tar.gz
使用本地dockfile构建image
docker build -t [repository:tag] [path]
注: [repository:name] 必须全部小写
Dockerfile位于[path]路径下
示例
docker build -t [myapp/aspnet:1.0] .
删除名称为<none>的image
docker rmi $(docker images -f "dangling=true" -q)
或
docker image prune
将已有的容器导出为新的镜像
docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]
示例
docker commit c3f279d17e0a test/testimage:dev
将镜像设置Tag
docker tag [OPTIONS] IMAGE[:TAG] [REGISTRYHOST/][USERNAME/]NAME[:TAG]
示例
docker tag ubuntu:15.10 myrepo/ubuntu:v3
docker 防火墙开放端口(例如8080)
示例
firewall-cmd --zone=public --add-port=8080/tcp --permanent
firewall-cmd --reload
servcie restart docker
删除某个Docker image的所有Child Images
docker image inspect --format='{{.RepoTags}} {{.Id}} {{.Parent}}' $(docker image ls -q --filter since=<image id>)