docker入门
Posted shijingjing07
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了docker入门相关的知识,希望对你有一定的参考价值。
1.docker安装
sudo apt-get -y install docker-ce
测试安装是否成功
2.开启,关闭,重启docker
service docker start
service docker stop
service docker restart
3.image文件
image文件,包含了操作系统,应用程序,依赖等,docker容器根据image文件,生成容器实例。
同一个image文件,可以生成多个同时运行的容器实例。
4.从image文件,生成容器
docker image pull library/hello-world
其中library/可以省略,查看image
运行image文件
docker container run hello-world
运行结果:
docker container run命令会从image文件,生成一个正在运行的容器实例。
5.生成ubuntu的容器
docker container run -it ubuntu bash
运行结果:
-t:进入终端
-i:在本机窗口输入的命令,会传入container
bash:在容器中启动bash shell
退出container
6.容器常用操作
1)查看所有容器
2)查看运行态容易
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的文件
3)编写Dockerfile,image配置文件
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文件
6)从koa-demo生成容器
-p:容器的3000端口映射到本机的8000端口
-it:在本机窗口输入的命令,会传入container
koa-demo: image文件名字
/bin/bash:进入容器后,执行的第一个命令,启动bash
运行正常,会进入koa-demo image的工作目录app
输入node demos/01.js,启动node进程,浏览器访问8000端口如下:
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容器的输出
4)docker container exec
作用于运行中的容器,docker run时没有使用-it参数,则要用这个命令进入容器,一旦进入,就可以执行shell命令了
5)docker container cp
拷贝container文件到本地
以上是关于docker入门的主要内容,如果未能解决你的问题,请参考以下文章
Docker删除报错:Error response from daemon: conflict: unable to delete 08b152afcfae (must be forced)(代码片段
markdown [Docker] Docker片段列表和命令#linux #docker #snippets