docker快速创建轻量级的可移植的容器(一)
系列其他内容
docker快速创建轻量级的可移植的容器✓docker&flask快速构建服务接口
docker&uwsgi高性能WSGI服务器生产部署必备
docker&gunicorn高性能WSGI服务器生产部署必备
docker&nginx&gunicorn实现负载均衡
docker&ngxtop并实时解析nginx日志
docker&supervisor监控你的服务
docker&pyinstaller两步法构建小体积容器
locust对你的服务做高并发测试
postman热门的API调试工具
docker+flask+gunicorn+nginx+pyinstaller+supervisor搭建一个轻量级满足高并发性能的服务
docker安装
本教程是基于redhat linux服务器的
介绍
docker为应用程序提供了隔离的运行空间:
镜像作为基础,一个镜像可以创建多个容器,方便服务的快速部署和迁移;
每个容器内都包含一个独享的完整用户环境空间,并且一个容器内的变动不会影响其他容器的运行环境;
在线安装
阿里云安装docker
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun

启动服务
# 先切换到root用户, 依次执行以下命令
systemctl enable docker # 开机自动启动docker
systemctl start docker # 启动docker
systemctl restart docker # 重启dokcer

离线安装
打开网页选择对应的docker版本
https://download.docker.com/linux/static/stable/x86_64/
上传到服务器(我们选择的版本是docker-rootless-extras-20.10.5.tgz)
tar -xvf docker-20.10.5.tgz
cp docker/* /usr/bin/
dockerd &
docker -v


删除docker
查询当前系统安装了哪些docker包
yum list installed | grep docker
yum remove containerd.io.x86_64 docker-ce.x86_64 docker-ce-cli.x86_64 docker-ce-rootless-extras.x86_64
docker -v

构建镜像
使用开源镜像
docker pull alpine # 轻量级,但无法执行python打包的exe文件
docker pull debian:buster-slim # 体积也比较小。可以执行python打包的exe文件
构建你的第一个镜像
具体的服务构建可以建下篇内容#docker&flask快速构建服务接口#。
验证flask服务的有效性
# flask_test.py为我们构造的flask服务
python3 flask_test.py即可启动服务
wget -O apirsult.txt "http://127.0.0.1:2222/test?name=xiaoming&pwd=123
依Dockerfile文件build个人Docker镜像及服务的有效性
%%writefile Dockerfile
FROM python/3.8
WORKDIR /home/myfirstapi/
RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
COPY . .
RUN pip install -r requirements.txt -q -i https://pypi.tuna.tsinghua.edu.cn/simple && \
rm -rf /var/cache/apk/*
expose 2222
CMD ["python3", "flask_test.py"]
# docker构建镜像并启动服务
docker build -t test/api:1.0 .
docker run -d -p 2222:2222 test/api:1.0
wget -O apirsult.txt "http://127.0.0.1:2222/test?name=xiaoming&pwd=123"

docker常用命令
基本使用,可以应用docker构建容器了
容器的基本应用,涉及到镜像及容器构建,容器查看相关内容。
# 构建名称为test/api,版本为2.0的镜像
docker build -t test/api:2.0 .
# 通过镜像test/api创建一个后台运行的容器,且映射端口4050
docker run -d -p 4050:4050 test/api:2.0
# 进入容器内部交互式命令空间的两种方式
docker run -it test/api:2.0 /bin/bash
docker container exec -it container-id /bin/bash
# 查看并停止容器
docker ps
docker stop ontainer-id
# 查看日志
docker logs -f --tail 100 container-id
or
vim /var/lib/docker/containers/容器ID/容器ID-json.log
# 查看端口
docker port container-id
溜溜的,玩转docker了可以
涉及到容器迁移,修改及数据卷相关内容
# 与容器中文件交互
docker cp container-id:/root/test.txt /root/
docker cp /root/ container-id:/root/test.txt
# 查看镜像中的文件
docker exec container-id ls -lth
docker exec container-id cat file.py
# 查看容器的进程情况
docker top container-id
docker stats container-id
# 保存修改的容器为镜像
docker commit -a "my_name" -m "install xxx" container-id image_name
# 保存镜像
docker save -o xxx.tar 镜像名称
# 加载镜像名
docker load --input test.tar
# 修改镜像名称
docker tag [镜像id] [新镜像名称]:[新镜像标签]
# 数据卷-使服务器和容器内对应的文件同步更新
docker run -d -p 4001:4000 --name web -v /home/linux:/home/docker/ test/api:1.0
掀桌了了,快速删除所有镜像及容器
快速停止,删除所有的容器,镜像
# 查看镜像概览
docker system df
# 删除所有docker中所有未使用的数据
docker system prune -a
# 停止容器内的所有进程
docker pause container-id
# 删除全部容器
docker kill $(docker ps -a -q)
# 删除所有容器
docker rm $(docker ps -a -q)
# 删除所有镜像
docker rmi $(docker images -q)

docker快速创建轻量级的可移植的容器(一)的更多相关文章
- 利用Docker快速创建Nginx负载均衡节点
本文版权归博客园和作者吴双本人共同所有 转载和爬虫请注明原文地址 www.cnblogs.com/tdws 一.Self-Host Kestrel 1. 在vs2017中新建dotnet core2. ...
- 使用Docker快速创建.Net Core2.0 Nginx负载均衡节点
本文版权归博客园和作者吴双本人共同所有 转载和爬虫请注明原文地址 www.cnblogs.com/tdws 一.Self-Host Kestrel 1. 在vs2017中新建dotnet core2. ...
- 1. Docker快速入门(仓库,镜像,容器)
参考阿里云文档:https://help.aliyun.com/document_detail/51853.html?spm=a2c4g.11186623.6.820.RaToNY 参考菜鸟教程文档: ...
- docker快速部署DNS,实现快速上线
概念Docker 是一个开源的应用容器引擎,Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级.可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化.这里我将使用do ...
- 全面的Docker快速入门教程
前言: 都2021年了,你还在为了安装一个开发或者部署环境.软件而花费半天的时间吗?你还在解决开发环境能够正常访问,而发布测试环境无法正常访问的问题吗?你还在为持续集成和持续交付(CI / CD)工作 ...
- docker快速入门01——docker安装与简单应用
1.docker简介 Docker 是一个开源的应用容器引擎,Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级.可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化 ...
- 【快学Docker】快速创建容器,容器常用命令
前言 容器是Docker的三大核心概念之一.简单地说,容器是独立运行的一个或一组应用,以及它们的运行态环境.对应的,虚拟机可以理解为模拟运行的一整套操作系统(提供了运行态环境和其他系统环境)和跑在上面 ...
- 在docker中快速创建包含ip相关tool的ubuntu镜像
在docker学习中需要创建轻量级的,包含ip相关工具的容器,支持ping,ip,ethtool,brctrl等相关指令. 下面就是快速创建一个满足需求的ubunut镜像的过程: 1) 在docker ...
- 容器docker快速入门
一.概述 什么是docker docker是一个应用容器引擎,通俗的讲,docker和我们的vm虚拟机有很多相似的地方,当然也有很多不同的地方 Docker理念是将应用及依赖包打包到一个可移植的容器中 ...
随机推荐
- solr(CVE-2020-13957)文件上传
影响版本 Apache Solr 6.6.0 - 6.6.5 Apache Solr 7.0.0 - 7.7.3 Apache Solr 8.0.0 - 8.6.2 环境搭建 下载环境 http:// ...
- Linux下MySQL基础及操作语法
什么是MySQL? MySQL是一种开源关系数据库管理系统(RDBMS),它使用最常用的数据库管理语言-结构化查询语言(SQL)进行数据库管理.MySQL是开源的,因此任何人都可以根据通用公共许可证下 ...
- .NET 6 预览版 7:新功能已完成 ,将专注于改进
.NET 团队的项目经理 Richard Lander在宣布 .NET 6 Preview 7 时说:"这是 .NET 预览的又一季的结束.", 中文翻译:.NET 6 预览版 7 ...
- 时间转换 BASIC-14
时间转换 给定一个以秒为单位的时间t,要求用"::"的格式来表示这个时间.表示时间,表示分钟,而表示秒,它们都是整数且没有前导的"0".例如,若t=0,则应输出 ...
- 一文让你彻底掌握ArcGisJS地图管理的秘密
使用ArcGis开发地图 引用ArcGisJS 使用ArcGisJS开发地图,首先需要引入ArcGis的Js文件和CSS文件,引入方式有两种,一种是官网JS引用,一种是本地JS引用.如下: 官网JS引 ...
- Linux进程理解与实践(二)僵尸&孤儿进程 和文件共享
孤儿进程与僵尸进程 孤儿进程: 如果父进程先退出,子进程还没退出那么子进程的父进程将变为init进程.(注:任何一个进程都必须有父进程) [cpp] view plaincopy #include & ...
- 【笔记】使用scikit-learn解决回归问题
使用sklearn解决回归问题 依然是加载数据 import numpy as np import matplotlib.pyplot as plt from sklearn import datas ...
- 命令执行 安鸾 Writeup
目录 命令执行 01 命令执行 02 仅代码层面来说,任意命令执行漏洞的利用条件: 1.代码中存在调用系统命令的函数 2.函数中存在我们可控的点 3.可控点没有过滤,或过滤不严格. Linux命令连接 ...
- STM32—时钟树(结合系统时钟函数理解)
时钟树的概念: 我们可以把MCU的运行比作人体的运行一样,人最重要的是什么?是心跳! 心脏的周期性收缩将血液泵向身体各处.心脏对于人体好比时钟对于MCU,微控制器(MCU)的运行要靠周期性的时钟脉冲来 ...
- 题解—P3000 [USACO10DEC]Cow Calisthenics G
做这题之前最好学会 "树形 \(dp\) 求树的直径"这一前缀知识(虽然我会但是我还是没想出来) 几乎想到要求直径这道题也没什么问题了(这不是废话吗,为什么题面里给了"直 ...