目录

k8s学习笔记——docker基础

简介:docker介绍和基本使用。

概念

Docker

一个开源的软件项目,在Linux操作系统上,docker提供了一个额外的软件抽象层及操作系统层虚拟化的自动管理机制。

容器

把自己的应用程序,根据某个依赖的基础镜像,生成一个应用程序镜像。

应用程序镜像可以运行在任何部署了Docker环境的机器上。

docker基本命令

  • docker version

  • docker info

  • docker search:搜索镜像

    • 1
      
      docker search nginx
      
  • docker pull:拉取镜像

    • 1
      
      docker pull alpine:lastest
      
  • docker push

  • docker run:启动一个镜像。

    • 1
      
      docker run -ti centos:8 bash
      
    • 加上 -d后台启动

  • docker logs:查看日志

  • docker ps:查看容器

  • docker exec

  • docker cp

  • docker rmi:删除镜像

  • docker rm:删除容器

  • docker tag

  • docker images:查看镜像

  • docker stop

  • docker build:由dockerFile文件构建镜像

  • docker history

  • docker commit

区分:

docker run:根据镜像创建一个容器并运行一个命令,操作的对象是 镜像

docker exec :在运行的容器中执行命令,操作的对象是 容器

dockerFile

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
FROM:继承基础镜像
MAINTAINER:镜像制作者信息
RUN:用来执行shell命令
EXPOSE:暴露端口号
CMD:启动容器默认执行的命令
ENTRYPOINT:启动容器真正执行的命令
VOLUME:创建挂载点
ENV:配置环境变量
ADD:复制文件到容器
COPY:复制文件到容器
WORKDIR:设置容器的工作目录
USER:容器使用的用户

CMDENTRYPIOINT 必须要有一个

CMD可以被覆盖,如果有ENTRYPIOINT的话,CMD就是ENTRYPIOINT的参数。

制作小镜像

使用更小的基础镜像

一定不要使用centos镜像

可以使用Alpine,busybox,scratch,Debian

使用多阶段构建

编译操作和生成最终镜像的操作

举例:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
# build step
FROM golang:1.14.4-alpine as builder
WORKDIR /opt
COPY main.go /opt
RUN go build /opt/main.go 
CMD "./main"

# create real app image
FROM alpine:3.8
COPY --from=builder /opt/main /
CMD "./opt/main"