docker中文文档:https://www.coonote.com/docker/docker-tutorial.html
MacOS 安装 Docker
使用Homebrew安装:
brew cask install docker
补充:homebrew安装命令,在shell中执行
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"
需检查
/usr/local/Homebrew/Library/Taps/homebrew/homebrew-core
目录是否存在或为空,如果是需要把/usr/local/Homebrew/Library/Taps/homebrew/homebrew-core
整体删除,并重新运行脚本安装。
参考博文:https://blog.csdn.net/qq_32442973/article/details/107946686
Docker简介
Docker的目标:通过对应用组件的封装、分发、部署、运行等生命周期的管理,使用户的APP及运行环境能够做到“一次封装,到处运行”。
Docker的三要素:
- 镜像(image):一个只读的模版,可用来创建docker容器,一个镜像可以创建多个容器。
- 容器(container):用镜像创建的运行实例。
- 仓库(repository):集中存放镜像文件的场所。
镜像与容器间的关系就类似于类和对象。
Docker常用命令
- 帮助命令
docker version :显示 Docker 版本信息
docker info : 显示 Docker 系统信息,包括镜像和容器数
docker --help:Docker命令提示
- 镜像命令
docker images:查看本地镜像
# 查看本地所有镜像(包含中间映像层)
docker images -a
# 查看本地镜像的id
docker images -q
#显示镜像的摘要信息
docker images --digests
#显示完整的镜像信息
docker images --no-trunc
docker search 镜像名称 :从网络上查找需要的镜像
#列出收藏数不小于指定值的镜像
docker search 镜像名称 -s num
docker pull 镜像名称:从docker的仓库下载镜像到本地
docker rmi 镜像名称:删除镜像
# 删除镜像 -f表示强制删除 删除多个名称之间用空格隔开
docker rmi [-f] 镜像id[镜像名称]
# 删除所有镜像
docker rmi -f $(docker images -qa)
- 容器命令
docker ps : 查看正在执行的容器
-l:显示最近创建的容器
-n 2: 显示最近2个创建的容器
docker run [options] image:创建并启动容器
-i:保持容器运行
-t:为容器重新分配一个伪输入终端
-d:以守护(后台)模式运行容器。创建一个容器在后台运行,需要使用docker exec 进入容器。
-it:创建的容器一般称为交互式容器
-id:创建的容器一般称为守护式容器
--name:为创建的容器命名
-p:映射端口 外部端口:容器内部暴露的端口
退出容器的两种方式:
- exit : 容器停止退出
- ctrl + p + q :容器不停止退出
docker start 容器id[容器名称] : 启动容器
docker restart 容器id[容器名称]:重启容器
docker stop 容器id[容器名称]:停止容器
docker kill 容器id[容器名称]:强制停止容器
docker rm 容器id[容器名称]:删除容器(需要先停止容器,然后再删除)
# 强制删除容器
docker rm -f 容器id[容器名称]
# 强制删除所有容器
docker rm -f $(docker ps -qa)
docker logs -t -f --tail 3 容器id:打印日志
-t:打印时间
-f:不停的追加日志
--tail:只打印后几条日志
docker top 容器id :查看容器内的运行进程
docker inspect 容器id[容器名称]:查看容器信息
docker exec -it 容器id /bin/bash :进入容器
docker attach 容器id : 进入容器
docker exec -it 容器id ls -l/tmp : 可以进入容器在外面拿结果(执行命令后还在宿主机外卖面)。docker attach直接进入容器启动命令的终端,不会启动新的进程;exec是在容器中打开新的终端,并可以启动新的进程。
docker cp 容器id:容器内路径 目的主机路径 :从容器内拷贝文件到主机上