docker入门

1.docker安装

sudo apt-get -y install docker-ce

测试安装是否成功
300946-20180720193232566-837107411.png

2.开启,关闭,重启docker

service docker start
service docker stop
service docker restart

3.image文件
image文件,包含了操作系统,应用程序,依赖等,docker容器根据image文件,生成容器实例。
同一个image文件,可以生成多个同时运行的容器实例。
300946-20180720193239620-15303987.png

4.从image文件,生成容器

docker image pull library/hello-world

其中library/可以省略,查看image
300946-20180720193245744-613132919.png

运行image文件

docker container run hello-world

运行结果:
300946-20180720193251847-1200698821.png

docker container run命令会从image文件,生成一个正在运行的容器实例。

5.生成ubuntu的容器

docker container run -it ubuntu bash

运行结果:
300946-20180720193258318-1088341366.png

-t:进入终端
-i:在本机窗口输入的命令,会传入container
bash:在容器中启动bash shell

退出container
300946-20180720193305379-83467806.png

6.容器常用操作
1)查看所有容器
300946-20180720193311826-2077133426.png

2)查看运行态容易
300946-20180720193318896-1767014840.png

3)手动终止某个容器

docker container kill [containerID]

生成容器后,会产生容器文件,即使已经kill容器了,容器文件依然存在
若要删除容器文件,需要用rm命令

docker container rm [containerID]

6.制作自己的image文件
下例将示例源码制作成image
1)下载源码

$ git clone https://github.com/ruanyf/koa-demos.git
$ cd koa-demos

2)编写.dockerignore文件,加入不想放进image的文件
300946-20180720193329119-166865242.png

3)编写Dockerfile,image配置文件
300946-20180720193339813-149569124.png

FROM node:8.4 image文件继承自官方的8.4版node image
COPY . /app 将当前目录下的所有文件(除.dockerignore),拷贝进image文件的/app目录
WORKDIR /app 指定接下来的工作路径是/app
RUN npm install 在/app目录下,运行npm install命令安装依赖,安装后的所有依赖,都将被打包进image文件
EXPOST 3000:将容器的3000端口暴露出来,允许外部访问

4)创建image文件

$ docker image build -t koa-demo .

-t:指定image的名字,后面可加冒号,指定tag
.:表示Dockerfile所在路径

5)查看生成的image文件
300946-20180720193346550-1918686470.png

6)从koa-demo生成容器
300946-20180720193352911-1077620115.png

-p:容器的3000端口映射到本机的8000端口
-it:在本机窗口输入的命令,会传入container
koa-demo: image文件名字
/bin/bash:进入容器后,执行的第一个命令,启动bash

运行正常,会进入koa-demo image的工作目录app

输入node demos/01.js,启动node进程,浏览器访问8000端口如下:
300946-20180720193400053-618338883.png

7)将命令写入Dockerfile,自动执行

FROM node:8.4
COPY . /app
WORKDIR /app
RUN npm install --registry=https://registry.npm.taobao.org
EXPOSE 3000
CMD node demos/01.js

容器启动后会自动执行node /demos/01.js命令

8)RUN和CMD命令的区别
RUN用在构建阶段,执行的结果都会打包进image
CMD用在容器启动后执行
所以RUN命令可以有很多个,CMD命令只能有一个

9)发布image文件
暂略

7.其他常用命令
1)docker container start [containerID]
新建某个容器,容器可能是运行,或停止状态的容器文件

2)docker container stop [containerID]
与docker container kill的区别在于,kill是发送SIGKILL信号,强制结束
stop是发送SIGTERM信号,过一会才发SIGKILL信号,我们在接收到SIGTERM信号后,可以人为决定要不要SIGKILL

3)docker container logs
查看docker容器的输出
300946-20180720193417256-1065089082.png

4)docker container exec
作用于运行中的容器,docker run时没有使用-it参数,则要用这个命令进入容器,一旦进入,就可以执行shell命令了

5)docker container cp
拷贝container文件到本地

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值