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\
|