一、docker的常用命令
1、使用--help查看docker常用命令
docker --help
2、docker常用命令及解释
Management Commands:
container Manage containers
image Manage images
network Manage networks
node Manage Swarm nodes
plugin Manage plugins
secret Manage Docker secrets
service Manage services
stack Manage Docker stacks
swarm Manage Swarm
system Manage Docker
volume Manage volumes
Commands:
attach 将本地标准输入、输出和错误流附加到正在运行的容器中
commit 通过容器内容创建一个新的镜像
cp 在容器和本地系统之间复制文件
create 创建一个新的容器
diff 检查容器文件系统上文件或目录的更改
exec 在一个运行的容器上运行命令
export 将容器的文件系统导出为tar存档文件
inspect 显示一个或多个容器的详细信息
kill 杀掉一个或多个正在运行的容器
logs 获取容器的日志
ls 显示容器列表
pause 暂停一个或多个容器中的所有进程
unpause 恢复一个或多个容器暂停的所有进程
port 列出容器的端口映射或特定映射
prune 删除所有停止运行的容器
rename 为一个容器重命名
restart 重启一个或多个容器
rm 删除一个或多个容器
run 在一个新的容器中运行命令
start 启动一个或多个停止运行的容器
stats 显示容器资源使用统计数据的实时流
stop 关闭一个或多个运行的容器
top 显示容器正在运行的进程
update 更新一个或多个容器的配置
wait 阻塞,直到一个或多个容器停止,然后打印它们的退出代码
二、docker常用命令使用
备注:创建、删除、启动、停止等容器命令,默认不用写container,直接操作容器即可。
1、创建、删除容器
- 创建一个容器
docker container create --name=my_nginx nginx
- 删除一个容器
docker rm my_nginx
- 查看正在运行的容器
docker ps
2、搜索、下载镜像
- 搜索网上是否有所需要的镜像
docker search nginx
- 下载所需要的镜像(我这里docker pull docker.io/bitnami/nginx 只做演示用)
docker pull nginx
- 查看下载的镜像
docker images docker images|grep nginx
3、启动、停止容器
- 运行一个容器(docker run == docker create + docker start,所以可以直接通过run命令直接创建并启动镜像)
docker run -itd --name=my_nginx01 -p 60:80 nginx doker ps 参数 --name 为容器设置一个名字 -i interactive交互模式 -t tty打开终端 -d daemon后台运行 -p 开启DNAT映射,将宿主机的60映射至容器的80
不常用参数 -v /var/www/ /usr/share/nginx/html/ 为容器映射一个外部的文件,容器生成的数据将保存在外部宿主机上,防止数据丢失。 -c 指定分配的cpu权重,用于共享CPU环境 --cpuset="", 设置容器可以使用哪些CPU,此参数可以用来容器独占CPU -m 为容器分配指定的最大可用内存 -u, --user="", 指定容器的用户 -w, --workdir="", 指定容器的工作目录 -e, --env=[], 指定环境变量,容器中可以使用该环境变量 --cidfile="", 运行容器后,在指定文件中写入容器PID值,一种典型的监控系统用法 -h, 指定容器的主机名 -v, 给容器挂载存储卷,挂载到容器的某个目录 --name , 指定容器名字,后续可以通过名字进行容器管理,links特性需要使用名字 --restart="no", 指定容器停止后的重启策略:no:容器退出时不重启/on-failure:容器故障退出(返回值非零)时重启/always:容器退出时总是重启(常驻容器需要配置此参数)
- 停止容器
docker stop b67(CONTAINER ID)
- 启动容器
docker start b67(CONTAINER ID)
三、容器命令示例
#查看当前运行的容器
[root@liangkk ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
da1cc40d9e75 nginx "nginx -g 'daemon of…" 4 days ago Up 4 days 0.0.0.0:80->80/tcp elegant_maxwell
#查看容器中运行的进程
[root@liangkk ~]# docker top da
UID PID PPID C STIME TTY TIME CMD
root 2071 2055 0 03:19 ? 00:00:00 nginx: master process nginx -g daemon off;
101 2100 2071 0 03:19 ? 00:00:00 nginx: worker process
#查看容器的端口映射
[root@liangkk ~]# docker port da
80/tcp -> 0.0.0.0:80
#为容器重命名
[root@liangkk ~]# docker rename da my_nginx
[root@liangkk ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
da1cc40d9e75 nginx "nginx -g 'daemon of…" 4 days ago Up 4 days 0.0.0.0:80->80/tcp my_nginx
#查看容器日志
[root@liangkk ~]# docker logs my_nginx
172.17.0.1 - - [12/Sep/2019:01:50:29 +0000] "GET / HTTP/1.1" 200 612 "-" "curl/7.29.0" "-"
#查看容器的实时状态
[root@liangkk ~]# docker stats my_nginx
CONTAINER ID NAME CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O PIDS
da1cc40d9e75 my_nginx 0.00% 1.402MiB / 976.3MiB 0.14% 1.7kB / 1.23kB 1.81MB / 0B 2
CONTAINER ID NAME CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O PIDS
da1cc40d9e75 my_nginx 0.00% 1.402MiB / 976.3MiB 0.14% 1.7kB / 1.23kB 1.81MB / 0B 2
CONTAINER ID NAME CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O PIDS
da1cc40d9e75 my_nginx 0.00% 1.402MiB / 976.3MiB 0.14% 1.7kB / 1.23kB 1.81MB / 0B 2
CONTAINER ID NAME CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O PIDS
da1cc40d9e75 my_nginx 0.00% 1.402MiB / 976.3MiB 0.14% 1.7kB / 1.23kB 1.81MB / 0B 2
CONTAINER ID NAME CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O PIDS
da1cc40d9e75 my_nginx 0.00% 1.402MiB / 976.3MiB 0.14% 1.7kB / 1.23kB 1.81MB / 0B 2
CONTAINER ID NAME CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O PIDS
da1cc40d9e75 my_nginx 0.00% 1.402MiB / 976.3MiB 0.14% 1.7kB / 1.23kB 1.81MB / 0B 2
CONTAINER ID NAME CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O PIDS
da1cc40d9e75 my_nginx 0.00% 1.402MiB / 976.3MiB 0.14% 1.7kB / 1.23kB 1.81MB / 0B 2
CONTAINER ID NAME CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O PIDS
da1cc40d9e75 my_nginx 0.00% 1.402MiB / 976.3MiB 0.14% 1.7kB / 1.23kB 1.81MB / 0B 2
#查看容器的详细信息
[root@liangkk ~]# docker inspect my_nginx
[
{
"Id": "da1cc40d9e7557428234a55b7c8c2e7fd9e3bb4768b1dc907a46ed3ada368120",
"Created": "2019-09-11T16:56:12.911285703Z",
"Path": "nginx",
"Args": [
"-g",
"daemon off;"
],
"State": {
"Status": "running",
"Running": true,
"Paused": false,
"Restarting": false,
"OOMKilled": false,
"Dead": false,
"Pid": 2071,
"ExitCode": 0,
"Error": "",
"StartedAt": "2019-09-11T16:56:13.825761926Z",
"FinishedAt": "0001-01-01T00:00:00Z"
},
......
"SandboxKey": "/var/run/docker/netns/e05241fb2ebd",
"SecondaryIPAddresses": null,
"SecondaryIPv6Addresses": null,
"EndpointID": "e5de8e5e0d7fc676af6d99a558fc8f9fcc0efc4eb95e3dc519e8abc6dc647db1",
"Gateway": "172.17.0.1",
"GlobalIPv6Address": "",
"GlobalIPv6PrefixLen": 0,
"IPAddress": "172.17.0.2",
"IPPrefixLen": 16,
"IPv6Gateway": "",
"MacAddress": "02:42:ac:11:00:02",
"Networks": {
"bridge": {
"IPAMConfig": null,
"Links": null,
"Aliases": null,
"NetworkID": "3fb516fe6680bbd1e6c5d36e6de84eba967edcaf404ccfc96de4aea3d1041408",
"EndpointID": "e5de8e5e0d7fc676af6d99a558fc8f9fcc0efc4eb95e3dc519e8abc6dc647db1",
"Gateway": "172.17.0.1",
"IPAddress": "172.17.0.2",
"IPPrefixLen": 16,
"IPv6Gateway": "",
"GlobalIPv6Address": "",
"GlobalIPv6PrefixLen": 0,
"MacAddress": "02:42:ac:11:00:02",
"DriverOpts": null
}
}
}
}
]
[root@liangkk ~]#