docker - 常用命令

常用命令

docker相关常用命令

1
2
3
4
5
6
7
8
9
sudo systemctl start docker #启动docker
systemctl restart docker.service #重启docker
docker version #查看 docker 版本
docker info #显示 docker 系统信息(容器情况、镜像情况等 )
docker –help #显示所有命令
docker login/logout # 登录、退出Docker账号
docker ps -a # 查看所有容器;
docker search keyword # 从Docker Hub中搜索相关镜像
docker top # 查看容器中正在运行的进程

镜像相关常用命令

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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
===== 查看镜像 
# 查看本地镜像列表
docker images
# 查看镜像制作过程
docker history

===== 获取镜像
# 从配置的仓库下载镜像
docker pull <name:tag>
# 获取指定版本的镜像
eg: docker pull centos:centos7
# 默认获得最新版本(latest)
eg: docker pull centos

===== 创建镜像(DockerFile)
docker build <Path> \ # Path为包含DokcerFile的目录
-f python.dockerFile #若DockerFile的文件名不是默认名称则需要说明

===== 创建镜像(快照)
docker load # 通过tar包,导入镜像
# 通过镜像tar(save创建)包导入镜像库
eg: docker load -i python.dockerimage.tar
# 从容器快照文件(export创建的tar) 导入到镜像库
docker import ubuntu.tar ubuntu:v1

===== 重命名镜像
# 对镜像进行从命名
docker tag <镜像ID> <newname:newtag>

===== 保存镜像
docker save <镜像ID> # 将镜像保存到一个tar包
eg: docker save python:latest -o python.tar

===== 上传镜像
docker push <name:tag> # 推送镜像到远程仓库
eg: eg: docker push benair/pancancer:v0

===== 删除镜像
docker rmi <镜像ID>
eg: docker rmi -f ae9660359c2ad

```

## 容器相关常用命令
```shell
===== 查看容器
$ docker ps #查看运行中的容器
CONTAINER-ID IMAGE COMMAND CREATED STATUS PORTS NAMES
5917eac21c36 ubuntu:15.10 "/bin/bash" 52 minutes ago Up 52 minutes sweet_agnesi

# 查看容器的内容变更
docker diff <CONTAINERID>
# 查看特定任务的日志文件
$ docker logs <CONTAINERID>
# 用于查看容器的配置信息,包含容器名、环境变量、运行命令、主机配置、网络配置和数据卷配置等。
docker inspect <CONTAINERID>

===== 启动容器
docker run <镜像ID>/<name:tag> # 通过特定镜像启动一个容器
eg: docker run \
-d \ # -d 后台启动一个容器
-it \ # -it 交互式启动容器
-v /share:/share \ # -v 将宿主机的目录挂载的容器内部(实现文件的交互);
-u root \ # -u 指定登陆容器后的用户名称
-p 80:80 \ # -p 对宿主机和容器的端口建立映射
-H hostname \ # -H 制定容器的主机名称
--name centos \ # --name 制定容器的名称
centos:centos7 \ # 启动的容器镜像
/bin/bash # 启动容器后,执行的命令

eg: docker run -it
===== 进入容器
docker attach/exec
# attach 进入容器后,如果退出容器会导致容器停止
eg: docker attach <镜像ID>/<name:tag>
# exec 进入容器后,如果退出,容器不会停止
eg: docker exec -it <镜像ID>/<name:tag> /bin/bash

===== 退出容器
# 交互状态中镜像中运行exit 或者使用 ctrk+d 退出容器
$ exit

===== 容器内文件交互
# 将文件从容器拷贝到宿主机
docker cp <CONTAINERID>:/FilePath /FilePath
# 将文件从宿主机拷贝到容器
docker cp /FilePath <CONTAINERID>:/FilePath

===== 删除容器 docker rm
# 删除指定容器,删除容器前需要确定容器是关闭的。
docker rm -f 1e560fca3906
# 批量删除某个镜像衍生的容器
docker ps -a | grep <镜像ID> | awk -F ' ' '{print "docker rm "$1}' | sh
# 清理掉所有处于终止状态的容器。
docker container prune

===== 保存容器(快照)
# docker export 基于当前版本建立快照(之前的层不保存)
docker export <CONTAINERID> > ubuntu.tar
docker export <CONTAINERID> -o ubuntu.tar

# docker commit 当前容器内容新建一层(在原有启动镜像基础上新建一层)
docker commit <CONTAINERID> <name:tag>
# 如果容器需要上传到远程仓库,在保存时还需要指定用户
docker commit <CONTAINERID> usr/<name:tag>


===== 关启容器
# 启动容器(不能是运行状态的容器)
docker start <镜像ID>/<name:tag>
# 停止容器
docker stop <镜像ID>/<name:tag>
# 重启容器
docker restart <镜像ID>/<name:tag>
# 终止容器
docker kill <镜像ID>/<name:tag>

===== 其他命令
docker rename # 重命名容器

参考资料

官方文档

Docker:Guides:Get started

生信常用镜像清单

bwa
vep
GATK 官方介绍

-------------本文结束感谢您的阅读-------------