Docker学习笔记

前言

作为一个苦逼Windows用户, Docker和Virtualbox只能二选一. 所以之前就一直没怎么用过Docker. 但最近因工作需要不得不用docker, 只好恶补一下, 顺便做个笔记, 把自己学习过程中的一些理解记录下来

常用命令

下载镜像

docker pull <image_name>

列出镜像

docker images
docker image ls

删除镜像

docker rmi <image_name/image_id>

运行容器

docker run -it <image_name/image_id> <params>

-i ,interactive, 交互式操作

-t ,terminal 创建一个伪终端

-i 和 -t一般连用, 不用-i的话不能进行交互(比如用不了vi这些交互式命令)

-d ,daemon 后台运行

--rm, 停止后自动删除容器, 不需要再去docker ps -a&&docker rm了

-v <path>:<path>, volume 共享文件夹

-p <host_port>:<container_port>, port 映射端口

-P, Ports 映射全部端口

--privileged, 用特权方式运行容器. 可以简单理解为Windows下的以管理员权限运行, linux下的sudo, 一般涉及到宿主机硬件或者系统文件的时候才需要用到

--net "bridge", 指定容器的网络连接类型

bridge, 创建独立的网络栈,保证容器内的进程组使用独立的网络环境,实现容器间、容器与宿主机之间的网络栈隔离。另外,Docker通过宿主机上的网桥(docker0)来连通容器内部的网络栈与宿主机的网络栈,实现容器与宿主机乃至外界的网络通信

host, 容器将不会虚拟出自己的网卡,配置自己的IP等,而是使用宿主机的IP和端口

none, 容器创建后没有网卡、IP、路由等信息。需要手动添加网卡、配置IP

container, 指定新创建的容器和已经存在的一个容器共享一个Network Namespace,而不是和宿主机共享

--name "container_name", 自定义一个容器名称, 方便后面使用

-h "<hostname>", host 指定容器的hostname

--dns <dns_server>, 指定容器的dns服务器

列出容器

列出当前运行的容器

docker ps

列出所有创建的容器(包含已关闭但未删除的容器)

docker ps -a

关闭容器

docker stop <container_id/container_name>

删除容器

docker rm <container_id/container_name>

重启容器

docker restart <container_id/container_name>

进入后台容器

docker attach <container_id/container_name>

在容器内执行

docker exec --it <container_id/container_name> <command>

如要在名称为lzskyline的容器中开启一个bash, 可使用:

docker exec --it lzskyline bash

退出exec启动的程序不会影响容器的停止

构建镜像

根据dockerfile创建镜像文件

docker build -t <image_name> <image_path>

常用快捷键

容器内关闭退出: Ctrl + D

容器内关闭不退出: Ctrl+P+Q

dockerfile部分

  1. 如果别人的镜像用的不爽但是又没有对方的dockerfile文件时可以用FROM的方式继承镜像内容, 再使用RUN执行命令二次修改

常见问题

  1. docker容器运行后自动退出, 加了-itd不起作用

    原因:

    image的ENTRYPOINT可能设置为了一个非挂起的程序, 比如在dockerfile里面指定了ENTRYPOINT ["ls"]. 这样就是会自动退出的

    解决方案:

    有dockerfile的话就修改一下, 改为ENTRYPOINT ["bash"]之类的即可.

    没有dockerfile的话可以用FROM的方式继承源镜像, 再在下面加上ENTRYPOINT ["bash"], 可以覆盖掉原来的ENTRYPOINT.

    dockerfile改好之后

PS

现在还有很多docker的功能没有使用到, 后续摸索完之后会继续补充, 目前计划的有

  • dockerfile的相关语法
  • 更新镜像(类似保存快照)

内容若有错误之处还请留言斧正 _


博客文章迁移: 2019-11-22 16:21

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 199,902评论 5 468
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 84,037评论 2 377
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 146,978评论 0 332
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,867评论 1 272
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,763评论 5 360
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,104评论 1 277
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,565评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,236评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,379评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,313评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,363评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,034评论 3 315
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,637评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,719评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,952评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,371评论 2 346
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,948评论 2 341

推荐阅读更多精彩内容

  • Docker 学习目标: 掌握Docker基础知识,能够理解Docker镜像与容器的概念 完成Docker安装与启...
    执笔梦一场阅读 3,166评论 2 10
  • 最近赶上项目快要上线, 一直没有时间更新博客, 今天终于有空可以更新了......在前面的章节中, 我们介绍了Do...
    春风知桺阅读 374评论 0 1
  • 近来发现docker越来越受欢迎了,而且看起来,docker的热度还远没有到达顶峰,或许在这个云服务时代的大背景下...
    尽情的嘲笑我吧阅读 511评论 0 5
  • 【版权声明】本博客转载自汤小洋 一、Docker简介 1. Docker是什么? ​ 产生背景: 开发和运维之...
    云未声阅读 447评论 0 7
  • 什么是容器 容器是一种轻量级,可移植、自包含的软件的打包技术,使应用程序可以在几乎任何地方以相同的方式运行。容器由...
    Vincilii阅读 414评论 6 0