一文带你掌握docker 常见命令架构原理bug
文章目录
- Docker原理
- Docker架构
- 容器操作
- 数据卷操作
- 镜像操作
- 批量删除容器或镜像
- docker-compose
- 蓝绿发布&金丝雀发布
- 开机自启动
- docker 镜像启动成功但是无法访问
本文带你进入掌握容器化时代法宝-docker
Docker原理
内核与硬件交互,提供操作硬件的指令
系统应用封装内核指令为函数,便于程序员调用
用户程序基于系统函数库实现功能
Ubuntu和CentOS都是基于Linux内核,只是系统应用不同,提供的函数库有差异
Docker将用户程序和系统应用(ubuntu或centos)一起打包,基于操作系统的内核就可以运行,屏蔽了系统应用函数库依赖等问题。
Docker架构
容器操作
docker exec -it CONTAINER bash # 以终端交互的模式
docker run -p 端口映射 -e 环境变量 -d 后台运行
docker start&restart
docker ps [-a] 查看容器(所有)
docker logs -f 查看日志
docker rm 删除容器
docker inspect container_id | grep # 查看容器详细信息
数据卷操作
docker volumn create&inspect&ls&prune&rm
镜像操作
docker save保存镜像为压缩包
docker load加载压缩包为镜像
docker pull和docker push为镜像推送和镜像拉取
docker images 查看镜像
docker rmi删除镜像
通过使用docker build和Dockerfile构建镜像
批量删除容器或镜像
sudo docker ps -a | grep Exited | awk '{print $1}' | xargs sudo docker rm 删除异常停止的docker容器
sudo docker images | grep '<none>' | awk '{print $3}'| xargs sudo docker rmi -f 删除名称或标签为none的镜像
docker-compose
docker-compose
-f:指定使用的compose模板文件,默认为当前目录下的docker-compose.yaml文件,可以多次指定。
-p:指定项目的名称,默认将使用所在目录名称作为项目名。
–verbose:输出更多调试信息。
-v:打印版本信息并退出
build 构建(重新构建)项目中的服务容器
config 检测compose文件的错误
up 启动服务
down 停止容器
images 列出项目中所包含的镜像
logs 查看服务容器的日志
kill 发送 SIGKILL 信号来强制停止服务容器
port 查看某个容器端口所映射的公共端口
ps 列出项目中目前的所有容器
restart 重启项目中的服务
rm 删除所有停止状态的服务容器
run 在指定服务上运行一个命令
scale 设置指定服务运行的容器个数
stop 停止处于运行状态的容器
start 启动被stop的服务容器
top 查看各个服务容器内运行的进程
pause 暂停一个服务容器
unpause 恢复处于暂停状态中的服务
蓝绿发布&金丝雀发布
蓝绿发布:蓝绿一个好一个坏,切换
金丝雀发布:一个一个替换
Harbor位置
/opt/harbor
启动命令
docker 启动命令
sudo systemctl start docker
docker 重启命令
systemctl restart docker
docker 查看状态命令
systemctl status docker
开机自启动
docker update name --restart
no - 容器退出时,不重启容器;
on-failure - 只有在非0状态退出时才从新启动容器;
always - 无论退出状态是如何,都重启容器;
docker 镜像启动成功但是无法访问
解决办法:
vi /etc/sysctl.conf或者vi /usr/lib/sysctl.d/00-system.conf
添加如下代码:
net.ipv4.ip_forward=1
重启network服务
systemctl restart network
查看是否修改成功
sysctl net.ipv4.ip_forward
如果返回为“net.ipv4.ip_forward = 1”则表示成功了
参考:
某马