前言、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
docker images
2.3 查找Nginx镜像
docker search
docker search nginx
2.4 拉取Nginx镜像
docker pull
docker pull nginx
2.5 运行Nginx容器
docker run
docker run --name my-nginx -d -p 8080:80 nginx
2.6 查看Nginx容器进程
docker ps
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
2.8 常见问题记录
问题现象
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 验证容器运行
访问 http://localhost:8080
三、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的基础概念及常用操作,后续还会继续更新跟云相关的内容,敬请期待~
版权归原作者 Feng随风 所有, 如有侵权,请联系我们删除。