美文网首页
Docker从入门到放弃

Docker从入门到放弃

作者: 李霖弢 | 来源:发表于2021-05-13 09:46 被阅读0次

Docker概念

  • 镜像(Image):只读模板。
    容器从镜像启动时,Docker在镜像的上层创建一个可写层,镜像本身不变。

  • 容器(Container):容器是镜像创建的应用实例,容器间相互隔离。

  • 仓库(Repository):镜像仓库,类似镜像界的github。
    比如Ubuntu仓库存放有多个版本(12.04、14.04等)的Ubuntu镜像。
    最大的公开仓库是dockerhub)

  • 注册服务器(Registry):存放仓库的地方

  • K8S :容器集群管理系统
    用于容器编排(Container Orchestration)——启动容器,自动化部署、扩展和管理容器应用,还有回收容器。

与虚拟机区别

容器类似一个轻量级的虚拟机(但本质上不是虚拟机,虚拟机是操作系统级别的资源隔离,而容器是进程级的资源隔离)。
相比虚拟机,Docker启动更快,占用空间更小,对资源的利用率更高。


Docker的安装和卸载

Docker可以安装在Windows、Linux、Mac等各个平台上。

Windows

其中Windows上安装的Docker Desktop基于WSL(Windows Subsystem for Linux) ,用于在windows上跑linux系统
安装完毕后cmd执行docker run hello-world测试是否安装成功

Linux
  1. 通过 cat /proc/version 查看系统版本
  2. 通过命令行安装相应docker
查看docker版本
  • docker version

镜像

查看镜像
  • docker image ls
  • docker images
    注意CREATED为镜像的创建日期(不是获取该镜像的日期)
拉取镜像

标签通常是版本号,默认为latest
注意:该latest是镜像管理者手动添加的tag,而非总是最新版本。

  • 从docker hub上拉取镜像
    docker pull【镜像名:标签】
    docker image pull【镜像名:标签】
docker pull ubuntu
docker pull ubuntu:16.04
  • 从个人仓库拉取镜像
    docker pull 【仓库名】/【镜像名:标签】
docker pull xunmi/django
  • 从第三方拉取镜像
    docker pull 【第三方仓库地址】/【仓库名】/【镜像名:标签】

仓库名默认library,从官方获取镜像相当于docker pull library/【镜像名:标签】

docker pull hub.c.163.com/library/mysql:latest
删除镜像

若镜像已生成容器,需删除容器后再删除镜像

  • docker image rm 【镜像名或镜像ID】
  • docker rmi 【镜像名或镜像ID】

容器

查看容器

查看正在运行的容器

  • docker ps 【可选参数】
    • -a 查看所有容器 (否则只显示正常运行中的容器)
    • -s 显示容器size
通过配置文件生成容器
  1. vi Dockerfile 在当前目录下创建并编辑Dockerfile文件
  2. 输入 from python:3.7 ,通过 Esc + :wq + 回车 保存
  3. docker build 【可选参数】 【镜像名:标签】 【向启动容器中传入的命令】
通过命令行生成容器
  • docker run 【可选参数】 【镜像名:标签】 【向启动容器中传入的命令】
docker run -dp 8080:80 --name docker-test docker/getting-started
  • 向启动容器中传入的命令
    默认为/bin/sh (= sh = /bin/bash = bash
  • 镜像名:标签
    加载一个本地镜像生成容器,如不存在则自动从官方仓库下载
    标签默认为latest
  • 可选参数
    • -it 两个参数通常一起使用,分配一个伪终端给容器,创建后可以进入容器命令行。否则非持续运行的容器会在start后自动stop。(docker exec同理)
    • -d 会创建一个守护式容器在后台运行
    • –name 为创建的容器命名。(不支持中文字符,默认会随机给名字)
    • -v 表示目录映射关系,即宿主机目录:容器中目录,建议均使用绝对路径。不存在的目录会自动创建。
    • -p 表示端口映射,即宿主机端口:容器中端口。 比如:-p 8080:80 就是将容器中的80端口,映射到主机中的8080端口
    • –network=host 表示将主机的网络环境映射到容器中,使容器的网络与主机相同。每个 Docker 容器都有自己的网络连接空间连接到虚拟 LAN。使用此命令则会让容器和主机共享一个网络空间。
开启容器
  • docker start【容器名或id】
  • docker container start【容器名或id】
停止容器
  • docker stop 【容器名或id】
  • docker container stop 【容器名或id】
删除容器
  • docker rm【容器名或id】
在运行的容器中执行命令
  • docker exec 【可选参数】【容器名或id】【命令】
    如下bash即可唤起命令行工具
docker exec -it mynode12 bash
将容器制作成镜像

便于备份、复用

  • docker commit 【容器名或id】 【镜像名或id】
    将容器制作成镜像
  • docker save -o 【保存的文件名】 【镜像名或id】
    镜像打包备份(打包备份的文件会自动存放在当前命令行的路径下,如果想让保存的文件可以打开,可以加.tar后缀)
  • docker load -i 备份文件路径
    导入备份

查看镜像、容器信息

  • docker history --no-trunc 【镜像名称或id】
    查看镜像的创建历史。其中--no-trunc表示不折叠内容
  • docker port 【容器名称或id】
    查看容器端口号映射关系
  • docker inspect 【镜像、容器名称或id】
    查看镜像、容器配置信息,其中HostConfig项有初始化信息

容器内外文件复制

容器外执行指令

  • 容器内复制到容器外
    docker cp 【容器名或id:容器内文件路径】 【容器外文件路径】
  • 容器外复制到容器内
    docker cp 【容器外文件路径】 【容器名或id:容器内文件路径 】

查看docker容器日志

docker logs [OPTIONS] CONTAINER
  Options:
        --details        显示更多的信息
    -f, --follow         跟踪实时日志
        --since string   显示自某个timestamp之后的日志,或相对时间,如42m(即42分钟)
        --tail string    从日志末尾显示多少行日志, 默认是all
    -t, --timestamps     显示时间戳
        --until string   显示自某个timestamp之前的日志,或相对时间,如42m(即42分钟)
  • docker logs -f --tail=100 b62a 实时查看b62a容器最近100行日志

简单的操作示例

  • docker images 查看所有镜像
  • docker pull python:3.10 拉取镜像
  • docker ps -a 查看所有容器
  • docker run -itd -p 49000:5000 --name pdf -v /data/QL_pdf:/data/QL_pdf python:3.10 创建容器
  • docker exec -it 容器 bash 进入容器
  • exit 退出容器
  • docker stop 容器 关闭容器
  • docker start 容器 启动/重启容器

常见问题

容器创建后不处于运行状态

docker容器运行必须有一个前台进程, 如果没有前台进程保持执行,容器认为空闲,就会自行退出。

  • 有一个一直执行(top,tail、循环等)的前台(-d会变成后台进程)进程
docker run myempty:0.1 /bin/sh "while true; do ls;sleep 1;done"
  • 直接使用-i -t,此时即使有-d也不会退出

相关文章

  • Docker从入门到放弃

    Docker 构建镜像: 而上面的这种写法,创建了 7 层镜像。这是完全没有意义的,而且很多运行时不需要...

  • Docker从入门到放弃

    一,docker的用途: 提供统一的环境:在本地测试其他人软件,或者把软件和环境一起打包,给其他人进行测试 提供快...

  • Docker从入门到放弃

    Docker概念 镜像(Image):只读模板。容器从镜像启动时,Docker在镜像的上层创建一个可写层,镜像本身...

  • 【1】docker 简介和安装

    Docker 从入门到放弃 按照官方文档来操作 安装环境 Ubuntu Trusty 14.04 (LTS) 1....

  • Docker 基本用法

    Docker 参考 极客学院Wiki:Docker入门基础教程 Gitbook:Docker —— 从入门到实践 ...

  • docker 从入门到放弃--安装(一)

    yum-config-manager \ --add-repo \ yum-config-manage...

  • Docker安装与国内加速

    Docker 简介 Docker官网Docker GithubDocker —— 从入门到实践Docker是一个开...

  • Docker

    Docker —— 从入门到实践 https://yeasy.gitbooks.io/docker_practic...

  • Ubuntu下安装Docker

    《Docker Practice(Docker从入门到实践)》学习笔记本文转自:Ubuntu 安装 Docker ...

  • 创造的乐趣

    从入门到放弃 ██████████████████████████████████████████████████...

网友评论

      本文标题:Docker从入门到放弃

      本文链接:https://www.haomeiwen.com/subject/cyiodltx.html