马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
x
前言、Docker基本概念
1. 镜像(Image)
镜像相当于一个root文件系统,常见的nginx,mysql,redis等软件可以做成一个镜像
2. 容器(Container)
容器是镜像创建的运行实例,是一个镜像实例化后的运行环境,运行的内容是镜像
每个容器都可以被启动、开始、制止、删除
3. 堆栈(Repository)
一个代码控制中心,用来生存镜像。分为公共存储库和私有存储库
最大的官方堆栈是 Docker Hub
国内可使用阿里云、网易、中科大品级三方堆栈
- 部分镜像源说明:
- Docker 官方镜像(中国区):https://registry.docker-cn.com
- 网易云:http://hub-mirror.c.163.com
- 中科大: https://docker.mirrors.ustc.edu.cn
- Azure 中国:https://dockerhub.azk8s.cn
- 腾讯云公共镜像: https://mirror.ccs.tencentyun.com
- 阿里云公共镜像: https://registry.cn-hangzhou.aliyuncs.com
- 百度镜像:https://mirror.baidubce.com
- {
- "registry-mirrors": [
- "https://registry.docker-cn.com",
- "http://hub-mirror.c.163.com",
- "https://dockerhub.azk8s.cn",
- "https://mirror.ccs.tencentyun.com",
- "https://registry.cn-hangzhou.aliyuncs.com",
- "https://docker.mirrors.ustc.edu.cn",
- "https://docker.m.daocloud.io",
- "https://noohub.ru",
- "https://huecker.io",
- "https://dockerhub.timeweb.cloud"
- ]
- }
复制代码
一、Docker管理命令
1.1 管理Docker状态
- Systemctl status docker #查看Docker状态
- Systemctl stop docker #暂停Docker进程
- Systemctl start docker #启动Docker进程
- Systemctl restart docker #重启Docker进程
复制代码
1.2 查察Docker版本
docker version
- #查看Docker版本
- docker -v
- docker version
复制代码
docker info
- docker info #查看docker配置信息
复制代码
1.3 查找docker镜像
docker search
- docker search rancher #docker查找某个docker镜像
复制代码
1.4 检查是否安装Docker(yum检查)
- #确认本机Docker是否yum安装
- yum list installed
- yum list installed | grep docker
- Rpm -qa | grep docker
复制代码
1.5 移除旧版本Docker
- #Yum移除旧版本docker
- yum remove docker docker-common docker-client
复制代码
1.6 编辑Docker配置文件
/etc/docker/daemon.json
- #编辑Docker配置文件
- vi /etc/docker/daemon.json
- {
- "registry-mirrors": [
- "https://docker.m.daocloud.io",
- "https://dockerproxy.com",
- "https://docker.mirrors.ustc.edu.cn",
- "https://docker.nju.edu.cn"
- ]
- }
- sudo systemctl daemon-reload #更新加载配置
- sudo systemctl restart docker #重启docker
- docker info #检查新配置的地址是否出现在Registry Mirrors
- docker search rancher #查找某个docker镜像,检查镜像源是否生效
复制代码 1.7 国内可用的Docker镜像堆栈
- vi /etc/docker/daemon.json
- {
- "registry-mirrors": [
- "https://docker.m.daocloud.io",
- "https://dockerproxy.com",
- "https://docker.mirrors.ustc.edu.cn",
- "https://docker.nju.edu.cn"
- ]
- }
复制代码
二、Docker新建应用(以nginx为例)
2.1 Docker通用管理命令
docker -h
2.2 查察本地Docker镜像
docker images
- [/code] [size=4][align=center][img=1200,335]https://i-blog.csdnimg.cn/direct/e5892444119b402a906285cbeb818836.png[/img][/align][/size]
- [size=4]2.3 查找Nginx镜像[/size]
- [size=3]docker search[/size]
- [code]docker search nginx
复制代码 2.4 拉取Nginx镜像
docker pull
2.5 运行Nginx容器
docker run
- docker run --name my-nginx -d -p 8080:80 nginx
复制代码 2.6 查察Nginx容器历程
docker ps
2.7 登录容器历程
docker exec -it /bin/bash
- docker exec -it <container-id> /bin/bash
- docker exec -it <container-id> /bin/sh
复制代码
docker exec -it /bin/sh
- [/code] [size=4]2.8 常见问题记录[/size]
- [size=3]问题现象[/size]
- [code]OCI runtime exec failed: exec failed: unable to start container process: exec: "/bin/bash": stat /bin/bash: no such file or directory: unknown
复制代码 缘故原由分析
情况1
通常出现的情况如下:
- 容器内部缺少必要的依赖项
- 容器内部的可执行文件不存在或损坏
情况2
假如你在Dockerfile中引用了自定义脚本,比如:entrypoint:./entrypoint.sh,没有给该脚本单独添加运行权限 chmod +x ./entrypoint.sh,也大概报这个错
办理方式
脚本类型,最常见的两种/bin/sh 和/bin/bash
提示没有/bin/bash,用/bin/sh登录
2.9 验证容器运行
三、Docker镜像管理(以nginx为例)
3.1 登陆Docker镜像堆栈
docker login
3.2 推送Docker镜像到镜像堆栈
docker tag
docker push
推送本地docker镜像到阿里云私有堆栈
3.3 拉取Docker镜像到本地
docker pull
3.4 查察Docker镜像详情
docker inspect
- #查看镜像详情
- docker inspect <image-id>
- #阿里云公共镜像仓库
- registry.cn-hangzhou.aliyuncs.com
复制代码 四、Docker容器管理
4.1 查察Docker容器历程
docker ps
4.2 查察容器日记
docker logs
- docker logs <container-id>
复制代码 4.3 查察Docker容器分析
docker top
4.4 查察Docker容器状态监控
docker container stats
docker stats
- docker stats <container-id>
复制代码
写在最后
以上是Docker的基础概念及常用操纵,后续还会继续更新跟云相关的内容,敬请等候~
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |