Docker简介

架构

一、Docker常见命令

  1. docker pull:获取image
  2. docker build:创建image
  3. docker images:列出所有image
  4. docker run image_name:运行container
  5. docker ps:列出container
  6. docker rm:删除container
  7. docker rmi:删除image
  8. docker cp:在host和container之间拷贝文件
  9. docker commit:保存改动为新的image

二、Dockerfile

touch dockerFile
vim dockerFile

FROM alpine:latest
MAINTAINER sumail-lee
CMD echo "hello world"

docker build -t hello_docker .
  1. from alipine:latest    表示该镜像的基础镜像
  2. MAINTAINER sumail-lee      镜像作者
  3. CMD echo “hello world”    执行的其他命令
  4. docker build -t hello_docker .     .表示把目录下所有的东西都包括进去
FROM ubuntu
MAINTAINER sumail-lee
RUN apt-get update
RUN apt-get install -y nginx
COPY index.html /var/www/html
ENTRYPOINT ["/usr/sbin/nginx","-g","daemon off;"]//容器入点
EXPOSE 80

2.1 Dockerfile语法

  1. FROM:base image
  2. RUN:执行命令
  3. ADD:添加文件
  4. COPY:拷贝文件
  5. CMD:执行命令
  6. EXPOSE:暴露端口
  7. WORKDIR:指定路径
  8. MAINTAINER:创建者
  9. ENV:设定环境变量
  10. ENTRYPOINT:容器入口,类似于CMD。在没有指定ENTRYPOINT时可以用cmd
  11. USER:指定用户
  12. VOLUME:mount point,挂载点

三、镜像分层

每一行都有一个新层

FROM alpine:latest 

MAINTAINER sumail-lee 

CMD echo "hello world"

都是只读,运行时产生一个新层container layer,可读写

四、Docker存储——Volume

提供独立于容器之外的持久化存储,例如mysql

将一个本地目录挂在到某个image中

docker run -v 实际路径:var/www/html nginx

第二种方式:

docker run -volumes-from

创建一个仅有数据的容器可以挂载到其他镜像

五、Registry——镜像仓库,提供注册共享镜像

5.1 术语

  • host:宿主机
  • image:镜像
  • container:容器
  • registry:仓库
  • daemon:守护程序
  • client:客户端

六、Docker-compose多容器app