Docker笔记
置顶 • 1年前 • 753次点击 • 来自 Linux
标签: Docker
Docker常用命令
使用官方安装脚本自动安装
安装命令如下:
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
也可以使用国内 daocloud 一键安装命令:
curl -sSL https://get.daocloud.io/docker | sh
Docker容器信息
docker version
docker info
镜像查看
docker images
## 包含中间映射层
docker images -a
## 查看正在运行的容器
docker ps
镜像搜索
##搜索仓库MySQL镜像
docker search mysql
## --filter=stars=600:只显示 starts>=600 的镜像
docker search --filter=stars=600 mysql
## --no-trunc 显示镜像完整 DESCRIPTION 描述
docker search --no-trunc mysql
## --automated :只列出 AUTOMATED=OK 的镜像
docker search --automated mysql
镜像下载
##下载Redis官方最新镜像,相当于:docker pull redis:latest
docker pull redis
##下载仓库所有Redis镜像
docker pull -a redis
##下载私人仓库镜像
docker pull bitnami/redis
镜像删除
##单个镜像删除,相当于:docker rmi redis:latest
docker rmi redis
##强制删除(针对基于镜像有运行的容器进程)
docker rmi -f redis
##多个镜像删除,不同镜像间以空格间隔
docker rmi -f redis tomcat nginx
##删除本地全部镜像
docker rmi -f $(docker images -q)
镜像构建
##(1)编写dockerfile
cd /docker/dockerfile
vim mycentos
##(2)构建docker镜像
docker build -f /docker/dockerfile/mycentos -t mycentos:1.1
容器操作
0.容器启动
##新建并启动容器,参数:-i 以交互模式运行容器;-t 为容器重新分配一个伪输入终端;--name 为容器指定一个名称
docker run -i -t --name mycentos
##后台启动容器,参数:-d 已守护方式启动容器
docker run -d mycentos
注意:此时使用"docker ps -a"会发现容器已经退出。这是docker的机制:要使Docker容器后台运行,就必须有一个前台进程。解决方案:将你要运行的程序以前台进程的形式运行。
##启动一个或多个已经被停止的容器
docker start redis
##重启容器
docker restart redis
1.容器与主机间的数据拷贝
##将rabbitmq容器中的文件copy至本地路径
docker cp rabbitmq:/[container_path] [local_path]
##将主机文件copy至rabbitmq容器
docker cp [local_path] rabbitmq:/[container_path]/
##将主机文件copy至rabbitmq容器,目录重命名为[container_path](注意与非重命名copy的区别)
docker cp [local_path] rabbitmq:/[container_path]
2.容器的停止与删除
最常用命令:
## 杀死所有正在运行的容器
docker kill $(docker ps -a -q)
## 删除所有容器
docker rm -f $(docker ps -a -q)
## 删除所有镜像
docker rmi $(docker images -q)
其他命令:
## 停止一个运行中的容器
docker stop redis
## 杀掉一个运行中的容器
docker kill redis
## 删除一个已停止的容器
docker rm redis
## 删除一个运行中的容器
docker rm -f redis
## 删除多个容器
docker rm -f $(docker ps -a -q)
docker ps -a -q | xargs docker rm
## -l 移除容器间的网络连接,连接名为 db
docker rm -l db
## -v 删除容器,并删除容器挂载的数据卷
docker rm -v redis
## 杀死所有正在运行的容器
docker kill $(docker ps -a -q)
## 删除所有未打 dangling 标签的镜
docker rmi $(docker images -q -f dangling=true)
## 删除所有镜像
docker rmi $(docker images -q)
docker rmi $(docker images -q) -f
## 杀死所有正在运行的容器.
docker kill $(docker ps -a -q)
## 删除所有未打标签的镜像.
docker rmi $(docker images -q -f dangling=true)
3.进入容器内部
docker exec -it onlineswiftplayground /bin/bash