Docker学习记录

37 阅读2分钟

“携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第7天,点击查看活动详情

Docker学习记录

Dockerfile

Dockerfile是一个包含用于组合镜像的命令的文本文档。可以使用在命令行中调用任何命令。 Docker通过读取文件中的指令自动生成镜像。

  1. 基础镜像信息
  2. 维护者信息
  3. 镜像操作指令
  4. 容器启动时执行指令
  5. ’#’ 为 Dockerfile 中的注释
  6. "&&" 符号连接命令,这样执行后,只会创建 1 层镜像

Docker以从上到下的顺序运行Dockerfile的指令。为了指定基本镜像,第一条指令必须是FROM。一个声明以#字符开头则被视为注释。可以在Docker文件中使用RUN,CMD,FROM,EXPOSE,ENV等指令。

#官网镜像
FROM registry.xxx.com/pathology/jpathology:java8-242

#设置工作目录
WORKDIR /code

#复制当前目录下的文件到工作目录
COPY ./xxxxx-web.jar /code/
COPY ./commit_id.txt /code/

#容器启动后执行命令
CMD ["java", "-jar", "xxxxx-web.jar"]

基础概念

镜像(Image)

Docker 镜像(Image)就相当于是一个 root 文件系统。比如官方镜像 ubuntu:16.04 就包含了完整的一套 Ubuntu16.04 最小系统的 root 文件系统。

容器(Container)

镜像(Image)和容器(Container)的关系,就像是面向对象程序设计中的类和实例一样,镜像是静态的定义,容器是镜像运行时的实体。容器可以被创建、启动、停止、删除、暂停等。

仓库(Respository)

仓库可看成一个代码控制中心,用来保存镜像。

docker常用命令

# 查看docker基础信息
docker info

# 拉取镜像
docker pull <image>:<tag>

# 移除容器
docker rm <containerId>

# 移除镜像
docker rmi <imageId>

# 启动、停止、重启容器
docker stop <containerId>
docker start <containerId>
docker restart <containerId>
docker run -itd --name <imageName> -P/-p<port>:<port> <imageName> /bin/bash

# 查看docker容器
docker ps <-a>

# 打包镜像
docker tag <path>/<name> <remotePath>/<name>
docker push <remotePath>/<name>

# 登录docker
docker login <remoteIp>

# 进入容器内部
docker exec -it <containerId> /bin/bash

# 从仓库搜索镜像
docker search <imageName>

Docker安装及使用教程-原文链接

Registry介绍

Registry是Dcoker官方的一个私有仓库镜像,可以将本地的镜像打标签进行标记然后push到以Registry起的容器的私有仓库中。企业可以根据自己的需求,使用Dokcerfile生成自己的镜像,并推到私有仓库中,这样可以大大提高拉取镜像的效率。

Rancher

Rancher是一个开源软件平台,使组织能够在生产环境中运行和管理Docker和Kubernetes。借助Rancher,企业不再需要使用一套独特的开源技术从头构建一个容器服务平台。 Rancher提供管理生产中容器所需的整个软件栈。

一、容器技术docker的思考方式是,将环境一起打包镜像,避免部署时的环境问题。

二、dockerfile记录镜像的制作步骤

三、镜像、容器、仓库的概念可以类比代码、进程、github