镜像

(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'

参考文献