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 <hannibal@a-team.com>")
  -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

参考文档

相关推荐
大树883 天前
金刚石散热越强,管路越先见顶
大数据·运维·服务器·人工智能·ai
摇滚侠3 天前
Linux CentOS7 rpm 安装 MySQL 5.7
linux·运维·mysql
霸道流氓气质3 天前
领域驱动设计(DDD)在 Spring Boot 微服务中的实践指南
运维·spring boot·微服务
Inhand陈工3 天前
基于台达PLC与映翰通IG502的智慧水产养殖精准投喂与远程运维解决方案
运维·人工智能·物联网·阿里云·信息与通信
Alsn863 天前
等待学习-学习目录:Docker 容器安全攻防
学习·安全·docker
酣大智3 天前
ARP代理--工作原理
运维·网络·arp·arp代理
shushangyun_3 天前
2026年快消品B2B系统推荐:支持终端门店订货、促销政策自动化的工具?
java·运维·网络·数据库·人工智能·spring·自动化
施努卡机器视觉3 天前
SNK施努卡侧滑门锁上滑轮总成自动化装配线,从零件到组件,全流程精密制造方案
运维·自动化·制造
AC赳赳老秦3 天前
用 OpenClaw 搭建服务器故障应急响应系统,自动处理 80% 常见运维故障
android·运维·服务器·python·rxjava·deepseek·openclaw
2601_961875243 天前
决战申论100题2026|最新|范文
linux·容器·centos·debian·ssh·fabric·vagrant