docker学习笔记(一)

1.docker介绍和安装

1.1 docker简介

Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从 Apache2.0 协议开源。

Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。

容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低。

Docker 包括三个基本概念:

  • 镜像(Image):Docker 镜像(Image),就相当于是一个 root 文件系统。比如官方镜像 ubuntu:16.04 就包含了完整的一套 Ubuntu16.04 最小系统的 root 文件系统。
  • 容器(Container):镜像(Image)和容器(Container)的关系,就像是面向对象程序设计中的类和实例一样,镜像是静态的定义,容器是镜像运行时的实体。容器可以被创建、启动、停止、删除、暂停等。
  • 仓库(Repository):仓库可看成一个代码控制中心,用来保存镜像。

其关系如下图:

Docker 使用客户端-服务器 (C/S) 架构模式,使用远程API来管理和创建Docker容器。

1.2 Ubuntu docker 安装

1.2.1、使用官方安装脚本自动安装

curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun

curl -sSL https://get.daocloud.io/docker | sh

1.2.2、手动安装

1.卸载旧版本:sudo apt-get remove docker docker-engine docker.io containerd runc

2.使用仓库安装:

 sudo apt-get update

 sudo apt-get install \
    apt-transport-https \
    ca-certificates \
    curl \
    gnupg-agent \
    software-properties-common

 curl -fsSL https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu/gpg | sudo apt-key add -

1.3 CentOS Docker 安装

1.3.1、使用官方安装脚本自动安装

curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun

curl -sSL https://get.daocloud.io/docker | sh  同ubutun

1.3.2、手动安装:

安装所需的软件包:

$ **sudo** **yum install** -y yum-utils \
 device-mapper-persistent-data \
 lvm2

注:yum-utils 提供了 yum-config-manager ,并且 device mapper 存储驱动程序需要 device-mapper-persistent-data 和 lvm2。

安装镜像源:选择阿里或清华的

 sudo yum-config-manager \
    --add-repo \
    http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
 阿里源

 sudo yum-config-manager \
    --add-repo \
    https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/centos/docker-ce.repo
清华源    

1.4、安装 Docker Engine-Community

 sudo yum install docker-ce docker-ce-cli containerd.io

 sudo systemctl start docker 启动 Docker

 sudo docker run hello-world  验证是否正确安装了 Docker Engine-Community 

1.5、卸载 docker

yum remove docker-ce

rm -rf /var/lib/docker

2.docker 基本操作和组件

2.1 docker 容器使用

docker pull ubuntu  拉取镜像

docker run -it ubuntu /bin/bash  启动容器

docker ps -a  查看所有容器

docker stop/start/restart <容器 ID> 停止/启动/重启动 容器

docker exec -it 243c32535da7 /bin/bash  进入容器(推荐使用)

2.2 docker 镜像使用

基本操作:

docker images  查看镜像列表

docker search/pull/run/rmi httpd 查找/拉取/运行/删除 镜像

创建镜像

当我们从 docker 镜像仓库中下载的镜像不能满足我们的需求时,我们可以通过以下两种方式对镜像进行更改。

  • 1、从已经创建的容器中更新镜像,并且提交这个镜像
  • 2、使用 Dockerfile 指令来创建一个新的镜像

更新镜像:1.创建一个容器 2.容器内使用 apt-get update 命令进行更新 3.docker commit 来提交容器副本

4.查看我们的新镜像 5,用新镜像 runoob/ubuntu 来启动一个容器

构建镜像:1.创建一个 Dockerfile 文件 2.通过 docker build 构建一个镜像 3.docker images 查看创建镜像

4 .使用新镜像创建容器 5.设置镜像标签docker tag

runoob@runoob:~$ docker build -t runoob/centos:6.7 .
Sending build context to Docker daemon 17.92 kB
Step 1 : FROM centos:6.7
 ---&gt; d95b5ca17cc3
Step 2 : MAINTAINER Fisher "fisher@sudops.com"
 ---&gt; Using cache
 ---&gt; 0c92299c6f03
Step 3 : RUN /bin/echo 'root:123456' |chpasswd
 ---&gt; Using cache
 ---&gt; 0397ce2fbd0a
Step 4 : RUN useradd runoob

docker images

docker run -t -i runoob/centos:6.7  /bin/bash

docker tag 860c279d2fec runoob/centos:dev

2.3 docker 目录挂载

docker 文件映射

docker run -it -v /root/code:/data/code xxx /bin/bash 

显示Docker容器挂载目录信息

docker inspect 369a1376f78c | grep Mounts -A 50

2.4 docker compose学习和使用

Compose 简介:

Compose 是用于定义和运行多容器 Docker 应用程序的工具。通过 Compose,您可以使用 YML 文件来配置应用程序需要的所有服务。然后,使用一个命令,就可以从 YML 文件配置中创建并启动所有服务。

Compose 使用的三个步骤:

  • 使用 Dockerfile 定义应用程序的环境。
  • 使用 docker-compose.yml 定义构成应用程序的服务,这样它们可以在隔离环境中一起运行。
  • 最后,执行 docker-compose up 命令来启动并运行整个应用程序。

Compose 安装:

Linux 上我们可以从 Github 上下载它的二进制包来使用,最新发行的版本地址:https://github.com/docker/compose/releases。

运行以下命令以下载 Docker Compose 的当前稳定版本:

curl -L https://get.daocloud.io/docker/compose/releases/download/v2.4.1/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose

2.5 docker数据卷

1) docker volume create 命令用于创建新卷。默认情况下,新卷创建使用 local 驱动,但是可以通过 -d 参数来指定不同的驱动。

2) docker volume ls 会列出本地 Docker 主机上的全部卷。

3) docker volume inspect 用于查看卷的详细信息。可以使用该命令查看卷在 Docker 主机文件系统中的具体位置。

4) docker volume prune 会删除未被容器或者服务副本使用的全部卷。 5) docker volume rm 删除未被使用的指定卷。

3.docker 高级操作

参见资料:https://blog.csdn.net/m0_53157173/article/details/123192114

3.1 具名挂载和匿名挂载的区别

具名挂载:挂载到指定名称的目录;

# /xxx 是目录, xxx是卷名,没有斜杆的就是卷名
docker run -d -v 卷名:容器目录 tomcat 

匿名挂载:匿名挂载是只有容器目录,没有宿主机的目录,所以生成出来的目录是一个长长的加密字符串,一般情况下不建议使用匿名挂载;加密字符串会导致不易查找;

docker run -d -v \容器目录 tomcat

3.2 查看docker运行日志

docker 容器再启动运行时就如IDE启动程序一样,会在容器中存储运行的日志,我们可以透过docker logs将其打印出来,以便于我们调试和查看错误所在位置,具体的命令参数如下:

docker logs [OPTIONS] CONTAINER

Options:
–details 显示更多的信息
-f, --follow 跟踪实时日志
–since string 显示自某个timestamp之后的日志,或相对时间,如42m(即42分钟)
–tail string 从日志末尾显示多少行日志, 默认是all
-t, --timestamps 显示时间戳
–until string 显示自某个timestamp之前的日志,或相对时间,如42m(即42分钟)

比如我们可以直接跟踪容器实时日志:

docker logs -f +容器名

我们还可以打印最后100条日志:

docker logs -tail 100 +容器名

我们还可以查看一定时间内的日志:

docker logs --since 30m CONTAINER_ID

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
当然,我会帮助你记录和学习Docker的知识点。下面是一份Docker学习笔记: 1. 什么是DockerDocker是一个开源的容器化平台,可以帮助开发者创建、打包、部署和运行应用程序,使应用程序可以在不同的环境中无缝运行。 2. Docker的优势有哪些? - 轻量化:Docker容器与虚拟机相比更加轻量级,启动和停止速度更快。 - 可移植性:Docker容器可以在任何支持Docker的平台上运行,无需担心环境不一致的问题。 - 隔离性:Docker使用容器技术进行隔离,每个容器之间相互独立,不会相互影响。 - 效率:Docker可以将应用程序及其依赖项打包为一个镜像,部署和扩展非常方便。 3. Docker常用的概念: - 镜像(Image):一个只读的模板,包含了运行应用程序所需的所有文件和依赖项。 - 容器(Container):基于镜像创建的可执行实例,可以运行、停止、删除等操作。 - 仓库(Registry):用于存储和分享镜像的地方,常用的有Docker Hub。 - Dockerfile:用于定义镜像构建过程的文本文件,包含了一系列的指令和配置。 4. Docker基本使用命令: - `docker pull <image-name>`:从仓库中拉取指定镜像。 - `docker run <image-name>`:创建并运行一个新的容器。 - `docker ps`:查看当前正在运行的容器。 - `docker stop <container-id>`:停止指定容器的运行。 - `docker rm <container-id>`:删除指定容器。 - `docker rmi <image-name>`:删除指定镜像。 5. Docker常见应用场景: - 镜像管理:可以通过Docker镜像进行应用程序开发、测试和部署。 - 微服务架构:通过容器化实现应用程序的模块化,方便管理和扩展。 - CI/CD:在持续集成和持续部署过程中使用Docker来构建、测试和发布应用程序。 这些是Docker学习过程中的一些基础知识点和常用命令。希望对你有帮助!如果你还有其他问题,可以随时问我。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值