docker常用命令 | 简记 |
1. 镜像操作
查看已有镜像
docker images
- 1
重启 docker 服务
systemctl restart docker
- 1
2. 容器操作
查看正在运行的容器
docker ps
- 1
查看当前宿主机上所有的容器,包括正在运行的和已经停止的容器
docker ps -a
- 1
docker启动容器
docker start docker_nginx_v1
- 1
docker进入容器交互终端
docker exec -it 5ecf2637f10b /bin/sh
- 1
docker停止容器
docker stop 02557eb8ac9c
- 1
退出容器
exit
- 1
查看所有容器
docker container ls --all
- 1
删除容器
docker rm -f 容器id
- 1
导出某个容器
docker export 02557eb8ac9c > mynginx.tar
- 1
- 后台运行容器
更多的时候,需要让Docker在后台运行,而不是把当前执行的命令的结果直接输出在当前宿主机下,此时我们可以使用docker run命令,并添加-d参数来实现:
root@ubuntu:~# docker run -d ubuntu:16.04 /bin/sh -c "while true; do echo hello docker; sleep 1; done"
59a9f0e30fda31c1799f622da6d56d0723c2bab5313f01f50e855fdbea21f00d
- 1
- 2
此时,容器会在后台运行,不会把输出的结果打印到宿主机上面。使用-d参数运行容器之后,会返回一个容器的ID的给我们
如果想要知道后台运行的容器所执行的命令输出的内容,我们可以使用docker container logs命令来查看。比如,我们想查看刚刚那个容器所输出的内容,我们在命令后面加上容器的ID即可,如下:
root@ubuntu:~# docker container logs 59a9f0e30fda
hello docker
hello docker
hello docker
hello docker
hello docker
hello docker
hello docker
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 进入容器
在使用-d参数时,容器会进入后台!但是,有的时候我们需要进入其交互式终端,对其进行一些命令输入操作,此时,我们可以使用docker attach命令或者docker exec命令来实现:
首先,我们新在后台启动一个容器:
root@ubuntu:~# docker run -dit ubuntu:16.04 bash
98ba6098afe1bc1f79893f4f3eca166b091cfeafcb544584b7fd09b7d12f41ef
- 1
- 2
此时再使用docker container ls命令来查看容器的信息:
一:使用docker attach命令,进入容器交互式环境:
root@ubuntu:~# docker attach 98ba6098afe1
root@98ba6098afe1:/#
- 1
- 2
二:使用docker exec命令,进入交互式环境,值得注意的是,须指定-i与-t参数和Shell的名称,如下:
root@ubuntu:~# docker exec -it ea0cda7fe8d7
root@ea0cda7fe8d7:/#
- 1
- 2
备注:使用docker exec和docker attach命令时,应注意:docker attach命令进入交互式环境时,使用exit命令退出之后,容器即可终止,而docker exec命令则不会!所以这两种命令,更加推荐使用docker exec!
- 导出和导入容器
如果要导出某个容器到本地,我们可以使用docker export命令
使用docker ps -a 查看所有容器列表:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
e4b2b468e841 continuumio/anaconda3 "/usr/bin/tini -- /b…" 14 hours ago Exited (0) 13 hours ago myanaconda
02557eb8ac9c nginx:v1 "nginx -g 'daemon of…" 43 hours ago Up 43 hours 0.0.0.0:8081->80/tcp docker_nginx_v1
- 1
- 2
- 3
下面,我们将容器ID为 02557eb8ac9c 的容器导出为docker_nginx_v1.tar,如下:
docker export 02557eb8ac9c > docker_nginx_v1.tar
- 1
此时,会在当前目录下生成一个docker_nginx_v1.tar名称的容器快照文件
导入容器:
我们可以使用docker import命令导入一个容器快照文件生成一个镜像
我们将刚刚生成的容器快照文件docker_nginx_v1.tar导入,命令如下:
cat docker_nginx_v1.tar | docker import - test/docker_nginx_v2
- 1
查看刚刚导入容器生成的镜像,如下
docker images
- 1
我们刚刚导入生成的镜像已经显示在列表之中了!此外,我们还可以通过指定URL或者目录来导入,如下:
docker import http://example.com/exampleimage.tgz example/imagerepo
- 1
导入本地容器快照,我们还可以使用docker load命令!
- 更多命令
命令 | 说明 |
---|---|
docker container ls | 列出正在运行的容器 |
docker ps | 列出正在运行的容器 |
docker container ls -a | 列出所有的容器 |
docker ps -a | 列出所有的容器 |
docker container start | 启动容器 |
docker start | 启动容器 |
docker container stop | 停止容器 |
docker stop | 停止容器 |
docker container restart | 重启容器 |
docker restart | 重启容器 |
docker container rm | 删除容器 |
docker rm | 删除容器 |
docker container logs | 打印容器的标准输出 |
docker logs | 打印容器的标准输出 |
docker中 启动所有的容器命令
docker start $(docker ps -a | awk '{ print $1}' | tail -n +2)
docker中 关闭所有的容器命令
docker stop $(docker ps -a | awk '{ print $1}' | tail -n +2)
docker中 删除所有的容器命令
docker rm $(docker ps -a | awk '{ print $1}' | tail -n +2)
docker中 删除所有的镜像
docker rmi $(docker images | awk '{print $3}' |tail -n +2)
tail -n +2 表示从第二行开始读取
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
文章来源: positive.blog.csdn.net,作者:墨理学AI,版权归原作者所有,如需转载,请联系作者。
原文链接:positive.blog.csdn.net/article/details/85684538
- 点赞
- 收藏
- 关注作者
评论(0)