Docker 系列之 基础入门
程序员文章站
2022-04-14 15:40:35
安装 Docker Windows 10 专业版以上版本 "Docker for Windows Installer" 在安装前,需要确保目标机器已经开启了硬件虚拟化和 HyperV ;在安装的过程中建议不要进行其它操作,它需要自动重启。 Ubuntu "Docker for Ubuntu" Mac ......
安装 docker
- windows 10 专业版以上版本
在安装前,需要确保目标机器已经开启了硬件虚拟化和 hyperv ;在安装的过程中建议不要进行其它操作,它需要自动重启。
- ubuntu
- macos
镜像加速器:registry mirror
安装完成后可打开 bash 窗口检查安装是否正常。
# 查看当前安装版本 docker -v # 查看当前详细信息 docker -info # 登录 docker docker login
安装 portainer
portainer: 可视化的管理界面,可选操作;(vscode 里面的 docker 插件也是可以进行相关操作)
docker volume create portainer_data docker run -d -p 9000:9000 --name portainer --restart always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer
执行成功后浏览 即可。
架构图
三大关键点
image
docker 镜像是一个只读的环境模板,里面只存放了我们需要运行程序的基础环境配置。
- 常用命令
# 获取镜像 docker pull [选项] [docker registry 地址[:端口号]/]仓库名[:标签] # 查看当前已经下载下来的所有镜像 docker images docker image ls # 显示所有悬挂镜像(仓库名、标签均为 <none> 的镜像) docker image ls -f dangling=true # 以特定格式显示 docker image ls -q docker image ls --format "{{.id}}: {{.repository}}" docker image ls --format "table {{.id}}\t{{.repository}}\t{{.tag}}" # 查看镜像体积 docker system df # 删除指定镜像 docker image rm [选项] <镜像1> [<镜像2> ...] docker rmi container_id
注:删除镜像前,请先删除对应的容器。
- 使用 dockerfile 进行自动构建
- from:指定基础镜像
- run:执行命令
- build:docker build [选项] <上下文路径/url/->
- copy:复制文件
- add:更高级的复制文件
- enterpoint:入口点
- env:设置环境变量
- arg:构建参数
- volume:定义匿名卷
- expose:暴露端口
- workdir:指定工作目录
- user:指定当前用户
- healthcheck:健康检查
- onbuild:未他人做嫁衣裳
示例脚本如下所示:
docker build -t friendlyname .# 使用此目录的 dockerfile 创建镜像 docker run -p 4000:80 friendlyname # 运行端口 4000 到 90 的“友好名称”映射 docker run -d -p 4000:80 friendlyname # 内容相同,但在分离模式下 docker ps # 查看所有正在运行的容器的列表 docker stop <hash> # 平稳地停止指定的容器 docker ps -a # 查看所有容器的列表,甚至包含未运行的容器 docker kill <hash> # 强制关闭指定的容器 docker rm <hash> # 从此机器中删除指定的容器 docker rm $(docker ps -a -q) # 从此机器中删除所有容器 docker images -a # 显示此机器上的所有镜像 docker rmi <imagename> # 从此机器中删除指定的镜像 docker rmi $(docker images -q) # 从此机器中删除所有镜像 docker login # 使用您的 docker 凭证登录此 cli 会话 docker tag <image> username/repository:tag # 标记 <image> 以上传到镜像库 docker push username/repository:tag # 将已标记的镜像上传到镜像库 docker run username/repository:tag # 运行镜像库中的镜像
container
容器是从镜像的创建的运行实例;简单的说,它是在镜像上面又创建了一层可读写层。容器之间相互隔离。
- 常用命令
# 查看当前正在运行的容器 docker container ls docker ps # 查看当前所有容器实例 docker container ls -a docker ps -a # 新建(若不存在)并启动一个容器实例 docker run image # 新建(若不存在)并后台启动一个容器实例 docker run -d image # 新建(若不存在)并以交互模式启动一个容器实例 docker run -it image # 启动已终止的容器 docker start conatiner_id docker container start conatiner_id #停止指定容器 docker stop conatiner_id docker container stop conatiner_id # 停止所有容器(在 powershell 中操作) docker stop $(docker ps -aq) # 删除指定容器 docker rm conatiner_id # 查看指定容器的运行日志 docker logs conatiner_id
repository
仓库是集中存放镜像的地方,仓库分为公开仓库和私有仓库两种,最大的公开仓库是docker hub,提供了数量庞大的镜像供用户下载,国内的公开仓库包括docker pool等,可以提供大陆用户更稳定、更快的访问。
- 常用命令
# 查找镜像 docker search keywords # 拉取镜像 docker pull repo_name docker push username/repo_name