docker
名词解释:
docker仓库:如果没有配置私人仓库,一般指的是docker官方指定的仓库,这个和github一样。
docker加速器:由于服务器在国外,为了提高访问速度,可以使用docker镜像加速服务(如阿里云的镜像加速服务),这个类似于换源
docker镜像:docker pull <镜像:版本> 后,使用docker images所查询到的结果。在作用上,他相当于模板/CD/iso文件,容器就是依据镜像创建的。
docker容器:实际上提供服务的实体,创建一个容器,就代表开启了一个服务。
docker层级:对于一个一般性的docker容器,他的内部是一种多层结构,如最底部的os层,os层上的服务···等等
配置文件:/etc/docker/daemon.json,这里可以配置docker加速器,没有此文件,需要手动创建,创建后此文件不能为空,否则报错,dockerd后台服务无法启动。
docker管理
常见命令及命令参数
docker version
查看当前docker服务是否正常
docker pull <镜像:tag>
从docker仓库拉取镜像到本地
docker push <镜像:tag>
把本地的镜像推送到docker仓库
docker run <镜像ID>
通过镜像创建容器,并自动运行
参数:
-it 可选参数
-v :目录挂载(映射):可选,推荐
-d:容器以后台形式运行:必选
-p:端口绑定(映射):必选
–name:手动指定容器别名;可选、推荐
-h:指定容器的主机名;可选
docker exec <镜像ID>
和正在运行的容器建立连接,以bash形式交互
参数:
-it
常见命令形式:
docker exec -it <镜像ID> /bin/bash 推荐使用
docker exec -it <镜像ID> sh 不推荐
docker ps <容器ID>
查看已创建的容器;-a参数可以显示所有容器
docker search <镜像:tag>
在docker仓库查找系统镜像
docker start <容器ID>
启动已经停止的容器,它相当于systemctl start
docker stop <容器ID>
停止正在运行的容器,与docker pause不同,它相当于systemctl stop,而pause相当于系统快照(冻结状态)。
docker rm <容器ID>
从本地移除一个容器(可以使用name,如tomcat8。但推荐使用ID);此处可以同时移除多个容器,ID以空格隔开;不能移除正在运行的容器。
docker rmi <镜像ID>
从本地移除一个镜像(注意不要使用name,如tomcat。而应该使用ID);此处可以同时移除多个镜像,ID以空格隔开;不能移除还有容器存在的容器。
docker images
显示所有镜像(本地)
docker logs <容器ID>
查看容器的日志,通常用于查看容器异常停止的原因,一般配合-f参数
docker pause <容器ID>
冻结正在运行的容器,相当于系统快照(冻结状态)。
docker -h
docker帮助命令
注意事项
报错及处理
Q:使用docker run创建docker容器并启动后,查看docker ps ,并无容器,使用docker ps -a ,发现容器并且退出码为exit(1):
A:这说明,在创建容器的过程中出错,常见的错误原因有:拉取的镜像不适合当前系统版本,如32位 OS使用了64位的镜像
Q:无法拉取官方的镜像,显示no matching manifest for unknown in the manifest list entries
A:这个只在树莓派中遇到过,这是由于官方没有准备适合树莓派的镜像,一般这个时候,都是由于你的系统是32位系统,armV71
Q,依据系统镜像创建的容器,创建后,错误码为exit(0)
A:这时可能是在创建容器时没有指定脚本执行程序,导致容器自动退出,这在创建系统容器时最为常见。
与github对比
docker和github很像,docker中的镜像就像github上的项目:允许pull,push;而且每个镜像都有star;同一类镜像也分官方发布的和私人改版的;浏览下载速度时快时慢;
例子
使用docker安装tomcat服务
安装docker服务
apt-get install docker
检查dockerd是否启动
docker version
此时需要正常显示client和server两个的内容
查看tomcat版本
docker search tomcat
选取指定的tomcat镜像并进行拉取
docker pull <tomcat:latest>
依据拉取到的tomcat镜像创建容器
docker run -d -it -p 8080:8080 <此处为tomcat的镜像ID>
这个命令 没有设置挂载目录和设定容器名字
查看容器是否创建成功
docker ps
如果没有显示,说明失败了,可以用docker ps -a
查看到失败、停止的镜像,使用docker logs -f <容器ID>
查看容器日志,获取为什么启动失败
访问tomcat服务
localhost://127.0.0.1:8080/