1、docker快速入门
知识点概述
- docker是轻量级虚拟机
- image是镜像 相当于虚拟机快照
- container是容器,相当于运行起来的虚拟机程序
- Dockerfile 是创建docker镜像的自动化脚本
- docker-compose 是一个定义和运行多个容器命令的工具,包括运行Dockerfile脚本
- volume 数据卷,让容器数据持久保存到本机的地方
常用命令
- 拉取镜像
docker search mysql
先查看下相关镜像及名字
docker pull mysql
拉取镜像
docker images
查看全部镜像
docker rmi 【镜像名或id】
删除镜像
docker pull hello-world
测试镜像
docker run hello-world
运行 - 容器运行
docker run -p 80:5000 -d 引用的镜像名 --name 容器名
还可以加数据卷
-p映射端口 前面80是本机端口,后面5000是容器程序暴露的端口 ,也可以一样-p 80:80
也可以映射多个端口,比如再加一次-p 8080::8080
-d 指后台运行
–name 设置容器名
-v /home/mydata:/app/data 前面是本机文件夹,后面是容器内文件夹;或者使用docker创建的数据卷,-v mysql-data:/var/lib/mysql
docker ps
列出运行的容器,再加-a列出所有状态容器
docker rm 【容器名或id】
用于删除一个或多个容器 - 数据卷
docker volume create mysql-data(数据卷名称)
创建数据卷
docker volume ls
列出所有的数据卷
docker volume inspect <volume_name>
查看数据卷定义
docker volume rm [volume_name]
删除数据卷 - 容器操作
docker start [volume_name]
:启动一个或多个已经被停止的容器
docker stop [volume_name]
:停止一个运行中的容器
docker restart [volume_name]
:重启容器
docker pause [volume_name]
:暂停容器中所有的进程。
docker unpause [volume_name]
:恢复容器中所有的进程。
docker exec -it [volume_name] /bin/bash
:进入容器内操作
exit
退出容器 - Dockerfile创建镜像
docker build -t 镜像名 .
句点表示在当前目录下寻找Dockerfile(无后缀名),创建完后就用docker run
运行 - docker-compose
首先编写docker-compose.yml
,后续文章再详细展开,这里比如:
version: '3'
services:
nginx:
image: nginx
ports:
- "443:443"
docker-compose up -d
运行docker-compose.yml里的所有容器,-d后台运行
docker-compose down
停止并删除,数据卷需要手动删除
- 查看日志
如果运行失败,使用docker ps -a
和docker logs <container_id>
命令来检查容器状态和获取错误日志。
2、安装docker
win10安装Docker Desktop更好;我的win7只能安装Docker Toolbox;docker只能运行在linux系统,所以在windows系统上运行的是虚拟的linux环境。
- 安装方法:
文章链接一
文章链接二
文章链接三
docker 最新可用镜像源 - 启动Docker Quickstart Terminal报错,解决方案放最后
- 已经成功下载boot2docker.iso,并放入C:\Users\Administrator.docker\machine\cache
- 还是报错:VBoxManage.exe: error: Details: code E_FAIL (0x80004005), component MachineWrap, interface IMachine
网上找了大部分解决方案,还是不行。 - 打开virtualbox查看出错日志:
47c8.28c4: Error (rc=0):
47c8.28c4: supR3HardenedMonitor_LdrLoadDll: rejecting 'C:\windows\system32\uxtheme.dll' (C:\windows\system32\uxtheme.dll): rcNt=0xc0000190
47c8.28c4: supR3HardenedMonitor_LdrLoadDll: returns rcNt=0xc0000190 'C:\windows\system32\uxtheme.dll'
47c8.28c4: supR3HardenedScreenImage/LdrLoadDll: cache hit (Unknown Status -22900 (0xffffa68c)) on \Device\HarddiskVolume1\Windows\System32\uxtheme.dll
怀疑是uxtheme.dll出问题了,修复一下还是不行,文章链接
- 再看出错信息
CryptCATAdminEnumCatalogFromHash failed ERROR_NOT_FOUND (1168)
cache hit (Unknown Status -22900 (0xffffa68c)) on \Device\HarddiskVolume1\Windows\System32\user32.dll