Docker 基本介绍

Docker 基本介绍

镜像

Docker镜像就是一个只读的模板。

例如:一个镜像可以包含一个完整的ubuntu操作系统环境,里面仅安装了Apache或用户需要的其它应用
程序。

镜像可以用来创建Docker容器。Docker提供了一个很简单的机制来创建镜像或者更新现有的镜像,用户甚至可以直接从其他人那里下载一
个已经做好的镜像来直接使用。

容器

Docker利用容器来运行应用。

容器是从镜像创建的运行实例。它可以被启动、开始、停止、删除。每个容器都是相互隔离的、保证安全
的平台。

可以把容器看做是一个简易版的Linux环境(包括root用户权限、进程空间、用户空间和网络空间等)和运
行在其中的应用程序。

  • 注:镜像是只读的,容器在启动的时候创建一层可写层作为最上层。

仓库

仓库是集中存放镜像文件的场所。有时候会把仓库和仓库注册服务器(Registry)混为一谈,并不严格区
分。实际上,仓库注册服务器上往往存放着多个仓库,每个仓库中又包含了多个镜像,每个镜像有不同的
标签(tag)。

仓库分为公开仓库(Public)和私有仓库(Private)两种形式。

  • 注:Docker 仓库的概念跟 Git 类似,注册服务器可以理解为 GitHub 这样的托管服务。

centos7安装

安装

# yum install docker

启动服务

# systemctl start  docker.service

开机启动

# systemctl enable docker.service

是否安装成功

# docker version

镜像下载

下载镜像

# docker pull daocloud.io/centos:7

查看已有的镜像

# sudo docker images

rm 删除容器

删除容器(可一次性删除多个)

# docker rm name1 name2 name3 ...

ps 查看容器

查看正在运行的容器

# docker ps

查看所有容器

# docker ps -a

run 运行容器

以守护态运行容器

# docker run -d  centos:7 /bin/sh -c "while true; do echo hello world; sleep 1; done"

创建容器,并进入

-i(交互式)和 -t(临时终端)

# docker run -t -i --name tomcat8 centos:7

# docker run -it --name tomcat8 centos:7

挂载本地目录,通过-v参数,冒号前为宿主机目录,必须为绝对路径,冒号后为镜像内挂载的路径。

docker run --privileged=true -v /root/software/:/mnt/software/ centos:7

端口映射

# docker run -p ip:hostPort:containerPort redis

    - iP表示主机的IP地址。 (-p 参数可添加多个)
    - hostPort表示宿主机的端口。 
    - containerPort表示虚拟机的端口。

进入容器

使用docker attach命令进入正在运行中的容器

只要这个连接终止,或者使用了exit命令,容器就会退出后台运行

# docker attach name/id号

使用docker exec命令进入正在运行中的容器

这个命令使用exit命令后,不会退出后台,一般使用这个命令,使用方法如下,/bin/sh 是固定写法

# docker exec -it name/id号 /bin/sh 

容器打包

将容器打包成镜像

# docker commit -a "Jordan Bach" -m "saved my message" insane_wright jbgo/message:v0.0.1

  -a, --author=""     Author (e.g., "John Hannibal Smith ")
  -m, --message=""    Commit message
  -p, --pause=true    Pause container during commit

Dockerfile

FROM daocloud.io/java:8u40-b22
COPY . /usr/stopper/conf
WORKDIR /usr/stopper/conf
ENTRYPOINT java -jar  bluelee-web-1.0.0-SNAPSHOT.jar

build

# docker build -t bluelee:1.0.0 .
  • -t 自定义镜像的名称
# docker build [OPTIONS] PATH | URL |-Build a new image from the source code at PATH

PATH or URL 在这2项中的文件被当作资源上下文. 创建image过程中,所有的文件都可能会被标记,比如说执行 ADD (link is external) 项. 当一个Dockerfile只有 URL STDIN (docker build - < Dockerfile), 那么就没有上下文了.

如果 URL 中指定了一个git repo,那么这个git repo也会被使用。 这个git repo会被当作子目录 (git clone -recursive). A fresh git clone occurs in a temporary directory on your local host, and then this is sent to the Docker daemon as the context. 反正如果使用git你必须处理好git的凭证和假如需要的VPN设置.

.dockerignore 在 PATH 项的根目录,这提供一种指定忽略的方式. 符合忽略规则的文件或目录将被忽略。

重要参数

选项 说明
-i, --interactive 保持标准输入打开,默认为false
-t, --tty 是否分配一个伪终端,默认为false

参考文档

  • 官方文档-build: https://docs.docker.com/engine/reference/builder/
  • 容器与镜像: https://segmentfault.com/a/1190000002766882

你可能感兴趣的:(技术杂货铺,docker,容器,运维)