镜像
(1) 获取镜像
docker pull [选项] [Docker Registry 地址[:端口号]/]仓库名[:标签]
比如
docker pull ubuntu:16.04
(2) 运行镜像并shell进入容器
docker run -it --rm ubuntu:16.04 bash
-it 标识打开终端进行交互
--rm 表示容器退出运行后自动删除容器
bash 标识交互使用的shell
(3) 列出所有镜像:
docker image ls
docker image ls --format "table {{.ID}}\t{{.Repository}}\t{{.Tag}}"
(4) 列出部分镜像:
docker image ls ubuntu
(5) 删除镜像
docker image rm
docker image rm -f fedora
docker image rm -f [image id]
容器
(1) 查看所有容器
docker ps -a
docker ps -a --format "table {{.ID}}\t{{.Image}}\t{{.Status}}\t{{.Ports}}"
(2) 查看运行容器
docker ps
docker ps --format "table {{.ID}}\t{{.Image}}\t{{.Status}}\t{{.Ports}}"
(3) 删除容器:
docker rm [容器id]
(4) 查看容器日志:
docker logs -f [容器id]
(5) 进入容器:
docker exec -it [容器id] bash
(6) 启动和停止
docker run 镜像名 //新建并且启动
docker start [容器id]
docker restart [容器id]
docker stop [容器id]
(7) 导入与导出
docker export 导出容器
docker import 导入容器
(8) 批量删除
删除所有停止的容器:
docker container prune
打包和上传镜像
写好Dockerfile文件
docker build -t lorahz/ipquery:1.2 .
上次镜像到官方仓库 cloud.docker.com/repository/
lorahz为自己的username
docker tag lorahz/ipquery:1.0 lorahz/ipquery:1.0
docker push lorahz/ipquery:1.0
docker search lorahz
docker run -d -p 8080:8080
docker run -p 6666:6666 --name ipquery -d lorahz/ipquery:1.0
docker exec -it 730d6a232600 bash
docker-compose 使用
找到对应的docker-compose.yml所在目录
docker-compose up -d
docker-compose down
清理镜像实践
一般先删除容器,再删除镜像
docker rm 9d59e2278553
docker rmi 5cb3aa00f899
docker image prune -f -a 清理不用的镜像
docker container prune -f 删除所有停止的容器
上面的命令很麻烦就用这个吧
docker system prune --all --force
清除一切没在运行的镜像,容器
容器文件复制
docker cp mycontainer:/opt/file.txt /opt/local/
docker cp /opt/local/file.txt mycontainer:/opt/
查看有哪些可用的tag版本
https://hub.docker.com/_/golang?tab=tags&page=1&name=1.13.4
运行并进入镜像shell
docker run -it --rm ubuntu:18.04 bash
docker run -it --rm centos:8.0 bash
docker run -it --rm busybox sh
docker run -it --rm golang:1.13.4 bash
docker run -it --rm alpine:3.8 sh
docker run -it --rm lorahz/ipquery:1.10 sh
别名技巧
alias dockerps='docker ps --format "table {{.ID}}\t{{.Names}}\t{{.Image}}\t{{.Status}}\t{{.Ports}}"'
alias dockerpsa='docker ps -a --format "table {{.ID}}\t{{.Names}}\t{{.Image}}\t{{.Status}}\t{{.Ports}}"'
alias dockerclean='docker system prune --all --force'
参考文献