docker images
docker search 镜像名字
docker pull 镜像名字:TAG
docker rmi ID/REPOSITORY
docker system df 镜像容器所占空间
docker run [OPTIONS] IMAGE [COMMAND] [ARG]
docker ps [OPTIONS]
docker restart 容器ID或者容器名
docker stop 容器ID或者容器名
docker kill 容器ID或者容器名
docker rm 容器ID或者容器名
docker rm -f 容器ID或者容器名 # 当容器未停止时强制删除 + -f
一次性删除多个容器实例
docker rm -f $(docker ps -aq) # 删除所有
docker rm -f $(docker ps -aqn 2) # 删除前俩
docker ps -aq | xargs docker rm # 将前半部分的结果集,放到xargs中进行删除操作
删除镜像的命令是 docker rmi ID
rmi 中的i就是 images的意思
输入命令: docker run -d ubuntu 后将会返回容器运行流水id
但输入 docker ps -a 发现容器已经结束
这是docker的机制问题,比如web容器 nginx为例,正常情况下,我们配置启动服务只需要启动响应的service即可。例如service nginx
start 但是,这样做nginx为后台进程模式运行,就导致docker前台没有运行的应用,这样的容器后台启动后,会立即自杀,他认为自己无事可做了。
所以我们都使用 -it 的前端进程形式运行
当使用redis等前台应用时 我们才会使用-d
docker logs 容器ID或者容器名
docker top 容器ID或者容器名
docker inspect 容器ID或者容器名
exec
exec是在容器中打开新的终端,并且可以启动新的进程用exit退出,不会导致容器的停止
attach
attach 直接进入容器启动命令的终端,不会启动新的进程用exit退出,会导致容器的停止
推荐使用exec,因为退出容器终端,不会导致容器停止
docker cp 容器id或者容器名:容器内路径 目的主机路径
# 复制容器ubuntu 根目录下的a.txt 到本机根目录
docker cp ubuntu:./a.txt ./
# 导出
docker export 容器id或者容器名 > xxx.tar
# 导入
cat xxx.tar | docker import -镜像用户/镜像名:镜像版本号
测试
# 导出
docker export ubuntu > ubuntu.tar
# 导入
cat ubuntu.tar | docker import - xxx/ubuntu:1.0.0
# 查看容器状态
docker ps
# redis 是我启动redis容器时起的名字 可以使用对应的容器ID
docker exec -it redis bash
# 连接redis
redis-cli -p 6379
# redis命令
ping
set k1 v1
get k1
# 退出redis连接
exit
# 退出容器
exit
# 查看容器状态 容器还在运行
docker ps