Docker入门到精通教程

news/2024/7/10 19:20:01 标签: docker, 开源

 Docker是什么

Docker是一个开源的应用容器引擎,它基于Go语言并遵从Apache2.0协议开源。容器技术是和我们的宿主机共享硬件资源及操作系统,实现资源的动态分配,在资源受到隔离的进程中运行应用程序及其依赖关系。

Docker可帮助更快地打包、测试以及部署应用程序,并可以缩短从编写到部署运行代码的周期。它的优点包括简化流程、避免选择恐惧症、节省开支等。

使用Docker可以将应用程序和基础设施层隔离,并且能将基础设施当作程序一样进行管理。Docker目前是最流行的Linux容器解决方案。它的基本概念包括镜像(Image)、容器(Container)和仓库(Repository)。镜像是Docker运行容器的前提,仓库是存放镜像的场所。

Docker架构使用C/S结构,即客户端/服务器体系结构。其中,Docker daemon是一个运行在宿主机(DOCKER-HOST)的后台进程。

Docker的应用场景

  • Web 应用的自动化打包和发布。

  • 自动化测试和持续集成、发布。

  • 在服务型环境中部署和调整数据库或其他的后台应用。

Docker仓库

Docker仓库是用于存储Docker镜像并可以通过Docker pull命令下载的云环境。Docker仓库分为公有仓库和私有仓库,公有仓库包括Docker Hub等开放给用户使用并允许用户管理镜像的仓库,私有仓库则是由用户自行搭建的存放镜像的云环境。在Docker中使用仓库之前需要登录Docker Hub或其他仓库,登录后可以通过Docker search命令查找需要下载的镜像。

Docker镜像

Docker使用

1、查找镜像

Usage:  docker search [OPTIONS] TERM

Search the Docker Hub for images

Options:
  -f, --filter filter   按照给定条件进行筛选
      --format string   Pretty-print search using a Go template
      --limit int       限制查找个数,默认是25 (default 25)
      --no-trunc        Don't truncate output

docker search jenkins 

2、列出本地镜像

docker images 

Usage:  docker images [OPTIONS] [REPOSITORY[:TAG]]

List images

Options:
  -a, --all             Show all images (default hides intermediate images)
      --digests         Show digests
  -f, --filter filter   Filter output based on conditions provided
      --format string   Pretty-print images using a Go template
      --no-trunc        Don't truncate output
  -q, --quiet           Only show image IDs

3、启动容器

 docker run [OPTIONS] IMAGE [COMMAND] 
[OPTIONS]常用参数有:
-i:启动一个可交互的容器,并持续打开标准输入。
-t:使用终端关联到容器的标准输入输出上。
-d:将容器放置后台运行

docker run有非常多参数,可以使用--help查看

docker run hello-world,如果本地没有该镜像,会从仓库查找并拉取

 

运行交互式的容器


我们通过 docker 的两个参数 -i -t,让 docker 运行的容器实现"对话"的能力:

runoob@runoob:~$ docker run -i -t ubuntu:15.10 /bin/bash

 如图,run容器后,命令行显示了root@0123ce188bd8:/#,这个是容器内的命令行。

按Ctrl+D,可以退出容器。

启动容器(后台模式)


使用以下命令创建一个以进程方式运行的容器

runoob@runoob:~$ docker run -d ubuntu:15.10 /bin/sh -c "while true; do echo hello world; sleep 1; done"

2b1b7a428627c51ab8810d541d759f072b4fc75487eed05812646b8534a2fe63

参数-d,指定该容器运行方式为后台模式,返回的一串数字为容器ID,每个容器都有唯一的ID。
 

4、查看容器

docker ps

Usage:  docker ps [OPTIONS]

List containers

Options:
  -a, --all             显示所有容器包含已停止容器
  -f, --filter filter   根据给定条件过滤
      --format string  使用go模板打印容器
  -n, --last int        
  -l, --latest          显示最新创建的容器
      --no-trunc        不截断输出
  -q, --quiet           只显示容器ID
  -s, --size            展示所有文件大小

 

5、查看容器日志 

使用 docker logs 命令,查看容器内的标准输出,常用来排查程序运行出错原因。

runoob@runoob:~$ docker logs 2b1b7a428627

 6、停止容器

使用 docker stop 容器id 命令来停止容器:

会输出容器ID

7、重启容器

使用 docker start +容器ID 启动一个已停止的容器:

$ docker start b750bbbcfd88

8、进入容器

进入Docker容器的命令为:


docker exec -it <容器ID或名称> /bin/bash


或者使用简写形式:


docker exec -it <容器ID或名称> sh


docker exec -it 7752222e1e1 /bin/bash


该命令会在指定的容器中启动一个交互式终端,允许您在容器内执行命令。容器的ID或名称可以是任何正在运行的容器的标识符。进入容器后,您可以在容器内执行任意命令。

输入exit或者按ctrl+D退出容器

9、删除容器

删除容器使用 docker rm 命令

容器必须先停止再删除。

高阶使用方法

构建镜像

如果已有镜像不满足使用,我们可以创建自己的镜像,需要写Dockerfile文件。

Dockerfile是用来构建Docker镜像的构建文件,它是由一系列命令和参数构成的脚本。

创建一个文件命名为Dockerfile

# 指定基础镜像  
FROM ubuntu:latest  
  
# 设置工作目录  
WORKDIR /app  
  
# 将当前目录下的文件复制到容器的工作目录中  
COPY . /app  
  
# 安装Redis  
RUN apt-get update && \  
    apt-get install -y redis-server && \  
    apt-get clean  
  
# 设置容器启动命令  
CMD ["redis-server", "/etc/redis/redis.conf"]

Dockerfile中,我们首先指定了基于Ubuntu的最新版本的基础镜像。

WORKDIR 设置了容器的工作目录为/app,这里目录是指容器内的目录。并将当前目录(宿主机当前目录)的所有文件复制到该目录下。

通过apt-get命令安装Redis

设置容器的启动命令为redis-server /etc/redis/redis.conf,即启动Redis服务器并加载配置文件。

有了这个Dockerfile后,我们可以使用docker build命令来构建镜像:


docker build -t my-redis .


该命令将会在当前目录下构建一个名为my-redis的Redis镜像,其中“.`”表示当前目录。在构建过程中,Docker将会执行Dockerfile中的每一条指令,并输出相应的信息。最终将会生成一个名为my-redis的镜像,可以使用docker images命令来查看所有已安装的镜像。

更新镜像

更新镜像之前,我们需要使用镜像来创建一个容器。

edualiyun@edualiyun:~$ docker run -t -i ubuntu:15.10 /bin/bash 


在运行的容器内使用 apt-get update 命令进行更新。

在完成操作之后,输入 exit命令来退出这个容器。

此时ID为e218edb10161的容器,是按我们的需求更改的容器。我们可以通过命令 docker commit来提交容器镜像。

edualiyun@edualiyun:~$ docker commit -m="has update" -a="edualiyun" e218edb10161 edualiyun/ubuntu:v2 sha256:70bf1840fd7c0d2d8ef0a42a817eb29f854c1af8f7c59fc03ac7bdee9545aff8


各个参数说明:

-m:提交的描述信息

-a:指定镜像作者

e218edb10161:容器

edualiday/ubuntu:v2:指定要创建的目标镜像名
 

docker使用实例

安装jenkins

docker pull jenkins 

docker run --name jenkins -p 8080:8080 -p 50000:50000 -v jenkins_home:/var/jenkins_home --restart always -d jenkins/jenkins

它创建并启动了一个名为'jenkins'的Docker容器。参数的解释:

  • 'docker run': Docker的一个命令,用于从Docker镜像创建容器并启动它。
  • '--name jenkins': 给创建的容器命名为'jenkins'。
  • '-p 8080:8080': 端口映射[宿主机端口:容器端口],将容器内部的8080端口映射到宿主机器的8080端口。
  • '-p 50000:50000': 另一组端口映射,将容器内部的50000端口映射到宿主机器的50000端口。
  • '-v jenkins_home:/var/jenkins_home': 数据卷映射,将宿主机上的'jenkins_home'目录映射到容器内的'/var/jenkins_home'目录。
  • '--restart always': 设置容器的重启策略为'always',即无论容器是启动还是停止,都会在退出后自动重启。
  • '-d jenkins/jenkins': -d容器放置后台运行,使用'jenkins/jenkins'这个Docker镜像来创建并启动容器。

安装nginx

Docker 安装 Nginx-CSDN博客


http://www.niftyadmin.cn/n/5106597.html

相关文章

第一新声采访:信创网安市场逐渐增长,开源网安积极探索信创商业模式

近日&#xff0c;开源网安研发中心高级总监徐瑞祝受邀接受“第一新声”关于信创网安行业发展的采访。第一新声是国内知名科技产业资本研究平台&#xff0c;长期聚焦于我国信创产业的研究。 随着信创产业的全面铺开&#xff0c;作为关键一环的信息安全产业也加速在各个领域落子…

java 使用poi读取excel内浮动图片

注意&#xff1a;仅读取到xls中的浮动图片&#xff0c;嵌入图片此方法读取不到 1、引入poi依赖 <dependency><groupId>org.apache.poi</groupId><artifactId>poi</artifactId><version>3.17</version></dependency><depen…

深度剖析Android Binder IPC机制

Android系统的成功离不开其强大的IPC&#xff08;Inter-Process Communication&#xff09;机制&#xff0c;其中最引人注目的就是Binder。本文将深入探讨Binder的技术原理&#xff0c;解释其工作方式以及相关的关键概念。 什么是Binder Binder是Android系统中的IPC机制&…

CV计算机视觉每日开源代码Paper with code速览-2023.10.19

精华置顶 墙裂推荐&#xff01;小白如何1个月系统学习CV核心知识&#xff1a;链接 点击CV计算机视觉&#xff0c;关注更多CV干货 论文已打包&#xff0c;点击进入—>下载界面 点击加入—>CV计算机视觉交流群 1.【目标检测】Learning from Rich Semantics and Coarse L…

内地海关查车相关流程

以下是内地海关查车的相关流程&#xff1a; 检查车辆证件&#xff1a;海关人员会检查车辆行驶证、车辆注册证和车辆保险证等相关证件。如果证件不齐全或存在问题&#xff0c;可能会影响进出口清关。 检查货物&#xff1a;海关人员会对车辆和行李进行安全检查&#xff0c;以确保…

设备健康管理系统PreMaint如何帮助制药企业符合GMP认证要求

在制药行业&#xff0c;确保药品的质量、安全性和有效性是至关重要的。为了满足这一需求&#xff0c;药品生产质量管理规范&#xff08;GMP&#xff09;被广泛采用作为制药企业达到国际质量标准的基础。然而&#xff0c;制药企业在追求GMP认证标准时面临着不少挑战。本文将探讨…

网站批量替换关键词方法

注意替换操作之前先对文件做好备份 1.下载http://downinfo.myhostadmin.net/ultrareplace5.02.rar 解压出来,运行UltraReplace.exe 2.点击菜单栏中的配置&#xff0c;全选所有文件类型,或者根据自己的需求选择部分,如htm、html、php、asp等 3.若替换单个文件,点击文件,若是要…

重要文件怎么加密?文件加密软件哪个好用?

当我们在使用电脑的过程中&#xff0c;我们需要使用到很多重要文件&#xff0c;为了保护文件的安全&#xff0c;我们需要进行加密保护。那么&#xff0c;重要文件该怎么加密呢&#xff1f;下面我们就一起来了解一下。 文件夹加密超级大师 文件夹加密超级大师是一款专业的电脑数…