docker常用命令

容器生命周期管理

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
# 镜像启动命令
## 启动一个带bash的镜像系统
docker run -it matosiki/centos7_ssh:1.0 /bin/bash
## 启动java应用程序
docker run -p 80:8080  --name  demo1  -v /data:/data -d matosiki/springboot-docker-demo:v1


# 容器启动暂停
docker [start/stop/restart] demo1

# 杀死容器
docker kill -s KILL demo1

# -f 强制删 -l :移除容器间的网络连接 -v 删除与容器关联的卷
docker rm -v  -l -f   demo1 

# 暂停/恢复容器中所有的进程
docker [pause/unpause] demo1

# 创建一个新的容器但不启动它
docker create  --name demo1  matosiki/springboot-docker-demo:v1 

# 在运行的容器中执行命令
docker exec -it matosiki/centos7_ssh:1.0 /bin/sh 

# 启动所有停止的容器
docker start $(docker ps -a | awk '{ print $1}' | tail -n +2)
# 停止所有启动容器
docker stop $(docker ps -a | awk '{ print $1}' | tail -n +2)
# 删除所有容器
docker rm $(docker ps -a | awk '{ print $1}' | tail -n +2)
# 删除所有镜像
docker rmi $(docker images | awk '{print $3}' |tail -n +2)
# 删除none镜像
docker rmi $(docker images | awk '/^<none>/ { print $3 }')
#根据容器的状态,删除Exited状态的容器

sudo docker rm $(sudo docker ps -qf status=exited)

容器操作

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# 列出所创建的所有容器
docker ps -a -q

# 查看镜像/容器元数据
docker inspect  --format='{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}'  demo1

# 查看容器中运行的进程信息
docker top demo1

# 连接到正在运行中的容器
docker  attach demo1

# 从服务器获取实时事件
docker events -f "image"="matosiki/springboot-docker-demo:v1" --since="1540191600000" 

# 获取容器的日志
docker logs --since="2018-07-01" --tail=10 demo1

# 阻塞运行直到容器停止,然后打印出它的退出代码
docker wait demo1

# 将文件系统作为一个tar归档文件导出到STDOUT。
docker export -o mysql-`date +%Y%m%d`.tar 2a5b6d450aad

# 列出指定的容器的端口映射
docker port  demo1

容器rootfs命令

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
# 从容器创建一个新的镜像
docker commit -a "matosiki" -m  "my customize ubuntu 16.04 images" a434fd109c4f matosiki/ubuntu:16.04



#用于容器与主机之间的数据拷贝
docker  cp  /www/web 2a5b6d450aad:/webapp

# 检查容器里文件结构的更改
docker  diff demo1

镜像仓库

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
# 在远程仓库中搜索镜像
docker search -s 10 matosiki

#登录到远程仓库
docker login

#从远程仓库获取镜像
docker pull docker.io/matosiki/centos7_ssh:v2.0

# 镜像推送到远程仓库
docker push docker.io/matosiki/centos7_ssh:v2.0

本地镜像管理

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
# 列出本地镜像
docker images  matosiki/centos7_ssh

# 强制删除本地镜像
docker rmi -f matosiki/centos7_ssh:1.2

# 将v1版本改成v2
docker tag matosiki/springboot-docker-demo:v1 matosiki/springboot-docker-demo:v2

# 使用当前目录Dockerfile构建一个v3版本的镜像
docker build -t matosiki/springboot-docker-demo:v3 . 

# 查看指定镜像的创建历史
docker history matosiki/centos7_ssh:1.0

# 将指定镜像保存成 tar 归档文件
docker save -o springboot-docker-demo.tar matosiki/springboot-docker-demo:v4

# 从归档文件中创建镜像
docker import  springboot-docker-demo.tar matosiki/springboot-docker-demo:v4  

info|version

1
2
3
docker info

docker version

常用高级命令

1
2
# 删除所有停止的容器
sudo docker rm $(sudo docker ps -a -q)

windows下备份docker volume数据

1
2
3
4
5
6
7
8
# 查看windows子系统列表
wsl -l -v
# 用资源管理器打开
\\wsl$\docker-desktop
\\wsl$\docker-desktop-data

# docker数据卷的位置
\\wsl$\docker-desktop-data\version-pack-data\community\docker\volumes\