0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看威廉希尔官方网站 视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

docker的基本命令和使用示例

马哥Linux运维 来源:博客园wang_yb 2025-01-06 15:59 次阅读

概述

起源

2013 年由 DotCloud 公司开源出来的容器管理工具
DotCloud 公司是一家 PAAS 服务提供商,从 docker 的出身也可以看出它的主要功能和方向

威廉希尔官方网站 原理

开始时是基于 LXC 容器威廉希尔官方网站

cgroup: 将任意进程进行分组化管理,同时还可以控制进程的资源占用(CPU, 内存等等)情况

namespace: 让每个进程组有独立的 PID, IPC 和网络空间

解决的痛点

打包部署

运行环境标准化

更加高效的利用物理机

docker 基本命令

容器的一个标准的生命周期包括:创建,启动,停止,终止和移除

docker pull busybox # 远程下载 images

docker run -it –rm –name busybox busybox # 创建容器,名称为 busybox

docker stop/kill busybox # 停止/强行停止 容器

docker start/restart busybox # 启动/重新启动 容器

docker rm busybox # 移除容器

常用命令

docker exec 可以运行 容器中的命令

docker cp 可以在主机和容器之间复制文件

docker inspect 查看容器的详细信息,也可以查看镜像详细信息

docker stats 容器的资源占用信息

docker events 返回 docker 主机上发生的所有 docker 事件流

docker logs 监控容器的日志

docker top 查看容器内运行的进程

docker 使用示例(busybox)

docker 容器是完全隔离的运行环境,但实际使用中,难免需要和外部或者 docker 容器进行交互。
比较常用的交互主要有 环境变量,磁盘,网络

环境变量

docker run -it --rm -e MY_NAME=wangyubin busybox env

外部的环境变量可以在容器启动的时候注入到容器中

磁盘

容器会共享镜像中的内容,容器自己的状态才会保存在磁盘上。

docker volume ls # 查看所有容器占用的磁盘名称
docker volume inspect VOL_NAME  # 查看具体的磁盘信息

容器中的文件,不会改变 image

在一个容器中创建文件(test.txt)

$ docker run -it --rm busybox
/ # touch test.txt
/ # ls
bin       etc       proc      sys       tmp       var
dev       home      root      test.txt  usr

重新启动的容器中是不包含这个文件的

$ docker run -it --rm busybox
/ # ls
bin   dev   etc   home  proc  root  sys   tmp   usr   var

容器挂载外部的文件系统

如果希望容器之间共享文件,或者将文件放在容器之外来管理,可采用如下方式 容器启动时挂载外部文件夹

docker run -it --rm -v /home/wangyubin/tmp/volume:/share-dir busybox
cd share-dir
touch test.txt

另一个容器也挂载这个文件夹

docker run -it --rm -v /home/wangyubin/tmp/volume:/share-dir busybox
/ # ls share-dir
test.txt

网络

容器中的服务默认只有当前容器可以访问,容器的宿主和其他容器都是无法访问的。

通过暴露端口,让宿主可以访问容器内服务

通过 nc 命令interwetten与威廉的赔率体系 一个服务

$ docker run -it -p 1234:1234 --rm busybox
/ # nc -l -p 1234

在宿主机上可以通过 docker ps 命令看到暴露的端口

docker ps

nc localhost 1234   # 连接上本地的 1234 端口,就可以和 docker 容器互发消息

容器创建在同一网络上

创建容器运行的网络,然后将 2 个容器启动到同一个网络上

$ docker network create test
a85b5589234b701b1237a364f7796b47e2d1ba4506740767c581a3d62d9e8f48

$ docker network ls
NETWORK ID          NAME                DRIVER              SCOPE
a85b5589234b        test                bridge              local
... ...

启动第一个 docker,name 为 test01,并在容器中用 nc 命令模拟一个服务

$ docker run -it --rm --name test01 --network test busybox
/ # nc -l -p 1234

启动第二个 docker,name 为 test02,和 test01 在同一个网络上

$ docker run -it --rm --name test02 --network test busybox
/ # nc test01 1234
hello

由于在同一个网络上,可以通过 test01 这个名称直接连接另一个容器

启动第三个 docker,name 为 test03,使用默认的网络

$ docker run -it --rm --name test03 busybox
/ # nc test01 1234
nc: bad address 'test01'

由于 test03 和 test01 不在一个网络上,所以无法互通

链接:https://www.cnblogs.com/wang_yb/p/8625003.html

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 内存
    +关注

    关注

    8

    文章

    3034

    浏览量

    74129
  • 容器
    +关注

    关注

    0

    文章

    496

    浏览量

    22074
  • Docker
    +关注

    关注

    0

    文章

    477

    浏览量

    11871

原文标题:docker 使用示例(busybox)

文章出处:【微信号:magedu-Linux,微信公众号:马哥Linux运维】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    gdb基本命令怎么使用?

    gdb基本命令怎么使用?
    发表于 12-24 06:32

    docker基础知识和使用bmnnsdk时的docker常用命令

    ),随后在docker环境中移动至/wokspace/的子目录下。 二、有用的命令 2.1 关于image与container 2.1.1修改镜像脚本命名自己的image 打开
    发表于 09-18 07:59

    HP Unix系统维护基本命令

    HP Unix系统维护基本命令 一、基本命令 1) tail 和 head    使用tail命令可以查看文件的尾部,head命令则查看文
    发表于 01-30 17:39 1975次阅读

    linux入门与基本命令相关资料下载

    linux入门与基本命令
    发表于 03-28 16:52 11次下载

    linux入门与基本命令1相关资料下载

    linux入门与基本命令1相关资料下载
    发表于 03-28 16:55 18次下载

    linux系统入门与基本命令-1版 相关资料下载

    linux系统入门与基本命令-1版
    发表于 03-28 16:58 0次下载

    学习 Docker 容器的 8 个命令分享

    利用这 8 个命令可以学习 Docker 容器的基本管理方式。这是一个为 Docker 初学者准备的,带有示范命令输出的指南。
    发表于 06-22 12:03 1377次阅读
    学习 <b class='flag-5'>Docker</b> 容器的 8 个<b class='flag-5'>命令</b>分享

    linux基本命令说明参数讲解教程

    linux基本命令说明参数讲解教程说明。
    发表于 03-25 16:00 9次下载

    Modelsim/Questasim基本命令

    Modelsim/Questasim基本命令
    发表于 10-21 15:06 1次下载

    docker 搜索镜像,docker查看镜像详细信息(docker下载镜像命令)

    Docker Hub是集中管理的Docker镜像注册中心。通过Docker 用户可以在注册中心搜索、下载和使用CLI命令行工具中的镜像。以下是常用的
    的头像 发表于 07-19 09:46 1879次阅读

    docker常用基础命令

    作为嵌入式开发工程师,需要用到的docker命令基础解析与使用。
    发表于 09-18 17:54 2次下载

    docker exec命令的使用方法

    有用的命令,用于在正在运行的容器中执行命令。 在本文中,我将详细介绍Docker exec命令的使用方法,包括命令格式、参数选项、使用
    的头像 发表于 11-23 09:33 1652次阅读

    linux关闭docker命令

    在 Linux 系统中,关闭 Docker 的操作可以通过以下多种方式进行。本文将详细讲解每一种方式,并提供示例代码和命令,以帮助读者更好地理解和实践。 使用 docker
    的头像 发表于 11-23 09:39 2870次阅读

    GD32VW553基本命令用户指南应用说明

    电子发烧友网站提供《GD32VW553基本命令用户指南应用说明.pdf》资料免费下载
    发表于 12-14 09:56 0次下载
    GD32VW553基<b class='flag-5'>本命令</b>用户指南应用说明

    关于Docker 的清理命令集锦

    这篇文章主要介绍了Docker 清理命令集锦,需要的朋友可以参考下 复制代码代码如下: docker kill $(docker ps -a -q)  删除所有已经停止的容器 复制代码
    的头像 发表于 06-13 15:56 393次阅读