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文件到本地

原文地址:https://www.cnblogs.com/shijingjing07/p/9343252.html