• 系列其他内容

    1. docker快速创建轻量级的可移植的容器✓

    2. docker&flask快速构建服务接口

    3. docker&uwsgi高性能WSGI服务器生产部署必备

    4. docker&gunicorn高性能WSGI服务器生产部署必备

    5. docker&nginx&gunicorn实现负载均衡

    6. docker&ngxtop并实时解析nginx日志

    7. docker&supervisor监控你的服务

    8. docker&pyinstaller两步法构建小体积容器

    9. locust对你的服务做高并发测试

    10. postman热门的API调试工具

    11. 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快速创建轻量级的可移植的容器(一)的更多相关文章

  1. 利用Docker快速创建Nginx负载均衡节点

    本文版权归博客园和作者吴双本人共同所有 转载和爬虫请注明原文地址 www.cnblogs.com/tdws 一.Self-Host Kestrel 1. 在vs2017中新建dotnet core2. ...

  2. 使用Docker快速创建.Net Core2.0 Nginx负载均衡节点

    本文版权归博客园和作者吴双本人共同所有 转载和爬虫请注明原文地址 www.cnblogs.com/tdws 一.Self-Host Kestrel 1. 在vs2017中新建dotnet core2. ...

  3. 1. Docker快速入门(仓库,镜像,容器)

    参考阿里云文档:https://help.aliyun.com/document_detail/51853.html?spm=a2c4g.11186623.6.820.RaToNY 参考菜鸟教程文档: ...

  4. docker快速部署DNS,实现快速上线

    概念Docker 是一个开源的应用容器引擎,Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级.可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化.这里我将使用do ...

  5. 全面的Docker快速入门教程

    前言: 都2021年了,你还在为了安装一个开发或者部署环境.软件而花费半天的时间吗?你还在解决开发环境能够正常访问,而发布测试环境无法正常访问的问题吗?你还在为持续集成和持续交付(CI / CD)工作 ...

  6. docker快速入门01——docker安装与简单应用

    1.docker简介 Docker 是一个开源的应用容器引擎,Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级.可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化 ...

  7. 【快学Docker】快速创建容器,容器常用命令

    前言 容器是Docker的三大核心概念之一.简单地说,容器是独立运行的一个或一组应用,以及它们的运行态环境.对应的,虚拟机可以理解为模拟运行的一整套操作系统(提供了运行态环境和其他系统环境)和跑在上面 ...

  8. 在docker中快速创建包含ip相关tool的ubuntu镜像

    在docker学习中需要创建轻量级的,包含ip相关工具的容器,支持ping,ip,ethtool,brctrl等相关指令. 下面就是快速创建一个满足需求的ubunut镜像的过程: 1) 在docker ...

  9. 容器docker快速入门

    一.概述 什么是docker docker是一个应用容器引擎,通俗的讲,docker和我们的vm虚拟机有很多相似的地方,当然也有很多不同的地方 Docker理念是将应用及依赖包打包到一个可移植的容器中 ...

随机推荐

  1. 剖析虚幻渲染体系(08)- Shader体系

    目录 8.1 本篇概述 8.2 Shader基础 8.2.1 FShader 8.2.2 Shader Parameter 8.2.3 Uniform Buffer 8.2.4 Vertex Fact ...

  2. thinkPHP5 5.0.23 远程代码执行漏洞

    修改数据包 POST /index.php?s=captcha HTTP/1.1 Host: 192.168.49.2:8080 User-Agent: Mozilla/5.0 (Macintosh; ...

  3. 遥远的国度 (树链剖分换根),洛谷P3979

    析:显然,若没有换根操作,则为树链剖分板子题,但是这道题我们考虑换根操作 考虑这样一个性质:在一棵树上,两点的距离路径是唯一的!! 也就是说,我们在修改路径上的点权时,不必考虑根在哪里,直接利用模板修 ...

  4. POJ 1190 生日蛋糕题解

    题目地址:http://poj.org/problem?id=1190 一道很有趣的搜索题--主要是剪枝-- 我弄了5个剪枝: 1.当前剩余层数>=上层半径,剪掉 2.当前剩余层数>=上层 ...

  5. Centos忘记密码怎么修改

    使用Centos系统忘记密码 在我们日常使用Centos系统时,有些人不免会出现一个共同的问题:忘记登录密码! 我们总不能再重装一遍吧! 接下来我们就分两种情况来看看: Centos系统在云服务器 C ...

  6. Java 浮点数精确性探讨(IEEE754 / double / float)与 BigDecimal 解决方案

    一.抛砖引玉 一个简单的示例: double a = 0.0; IntStream.range(0,3).foreach(i->a+=0.1); System.out.println(a); / ...

  7. 腾讯云TDSQL PostgreSQL版 -最佳实践 |优化 SQL 语句

    查看是否为分布键查询 postgres=# explain select * from tbase_1 where f1=1; QUERY PLAN ------------------------- ...

  8. 害...原来阿里面试Redis最常问的是它呀

    一提到Redis缓存,我们不得不了解的三个问题就是:缓存雪崩.缓存击穿和缓存穿透.这三个问题一旦发生,会导致大量的请求直接请求到数据库层.如果并发压力大,就会导致数据库崩溃.那p0级的故障是没跑了. ...

  9. S3C2440—1.熟悉裸机开发板

    文章目录 一.板载资源介绍 二.安装驱动及上位机 1.USB的驱动及上位机 2.eop驱动安装 3.安装烧录软件oflash 三.烧写开发板 1.预备知识 2.烧写裸板 3.使用u-boot烧写程序 ...

  10. DI 原理解析 并实现一个简易版 DI 容器

    本文基于自身理解进行输出,目的在于交流学习,如有不对,还望各位看官指出. DI DI-Dependency Injection,即"依赖注入":对象之间依赖关系由容器在运行期决定, ...