Day 9 : Docker 基本操作 Container 篇

建立Container

把Image比喻做Class则Container就是Object,Container就是实际Docker上的货柜,装载一个一个的Application。

承接昨天的文章,我们已经建立好了一个appache image。我们看看如何docker 有哪些重要指令:

  • docker ps -a 查看目前所有container (不论有无运行)
  • docker rm -fv <Container Id> 删除container,-f是强制删除正在运行的container (不然一般要先停止container),-v 是删除这个container的volume
  • docker inspect <Container Id> 查看Container详细资讯
  • docker logs <Container Id> 查看Container执行log
  • docker start <Container Id> 启动Container
  • docker stop <Container Id> 停止Container
  • docker restart <Container Id> 重新启动Container
  • docker run <OPTIONS> <ImageName>:<tag> 建立新的Container

建立新的container有很多重要的参数,可以参考这这里,我在下面写一些重要的参数

  • -d 背景执行
  • -it 可以用terminal交互
  • -w <Inside_dir> 指定工作目录
  • -v <Outside_dir>:<Inside_dir> 指定volume位置
  • -p <Outside_port>:<Inside_port> 指定开放port
  • --name <Name> 指令Container名称 (不指定就是Container随便给)

举个例子,开启上一篇的apache服务,port外部8080映射内部80,将container取名为Web_APP
docker run -d -it -p 8080:80 --name Web_APP httpd:2.4

https://ithelp.ithome.com.tw/upload/images/20210911/20119044kE7VfDX9S0.png

打开你的浏览器,输入http://localhost:8080,可以发现电脑的8080 port正运行默认的Apache !!! It works !!! 太神奇啦,我们电脑没有安装任何Web Server居然也能运行 !!!

进入Container

可以把Container当作是一个独立运行的简化系统,所以也可以进去里面进行操作。

  • docker exec -it <Container ID> bash 进入运行中的Container

当然也有一些重要参数

  • -u root 用root身分进入

进入container後默认会在Container的workdir内。你可以改里面的档案,不过默认是没有vim、nano的,透过一下指令安装:

apt-get install
apt-get install vim

以刚刚的apache container,网页会在/usr/local/apache2/htdocs/index.html,进入修改成<h1>Hello IT BAN</h1>,ctrl+F5重新整理http://localhost:8080

https://ithelp.ithome.com.tw/upload/images/20210911/20119044Xmn30hAwtZ.png

当然实际上不用这麽麻烦要进入里面修改程序,之後文章教你怎麽内外部档案映射。

将container输出成image

我们可以将修改好的container输出成image,让其他人使用,imageName必须全部小写。

  • docker commit <Container ID> <imageName>

https://ithelp.ithome.com.tw/upload/images/20210911/20119044UjXQApSxc2.png

如上图,下一次别人使用你的image後就会发现内容被修改过了。


<<:  JavaScript Day 2. 关於,运算子们

>>:  Day 6 网路宝石:AWS VPC 架构 Routes & Security (下)

Azure Private DNS 手把手基础教学

葛瑞部落格欢迎光顾 功能初衷意义 平时在Azure VM之间如果要更有意义的管理相互之间的沟通,往往...

Excel VBA 巨集设计问题 不同表格中VLOOKUP找资料

现在做了一个表格 内容如图下分了商品编号, 仓库号和仓库名 希望能输入商品编号後能自动带出仓库号和仓...

30天打造品牌特色电商网站 Day.19 文字的排版

字距、行距、与其他物件的距离,调整适当能让使用者有舒服的体验,而良好的排版能引导使用者优先接收整个画...

[鼠年全马] W36 - Vue出一个旅馆预约平台(10)

转眼间来到了 Vue出旅馆预约平台 第10篇了...做的真久阿... 还好不是公司的专案, 不然绝对...

Day03-入口管制(二)

前言 昨天在讲格式验证的时候有提到 Node.js 的 validator 跟 Go 的 goval...