Docker基础入门:从0开始学习容器化技术

这篇具有很好参考价值的文章主要介绍了Docker基础入门:从0开始学习容器化技术。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。



💖The Begin💖点点关注,收藏不迷路💖

一、Docker基础

Docker基础入门:从0开始学习容器化技术,容器化与编排技术深度解析,docker,Docker基础入门,容器化技术,云原生,镜像,容器,docker 命令

1.1、Docker起源

Docker起源于2013年,由Docker公司(前身为dotCloud公司)创造和推广。它是一个开源的容器化平台,旨在简化应用程序的部署和管理。

在过去,应用程序的部署和运行环境往往存在着依赖关系和配置差异,这导致了许多问题,例如运行环境不兼容、难以移植和难以管理等。为了解决这些问题,Docker应运而生。

1.2、Docker概念

Docker 是一个可以将应用程序及其依赖打包到几乎可以在任何服务器上运行的容器的工具。

Docker的核心概念是容器,它是一种轻量级且独立的运行环境,可以在任何操作系统上运行。与传统的虚拟化技术相比,容器不需要额外的操作系统,它们共享主机的内核,因此更加高效和灵活。

1.3、Docker优势

通过使用Docker,开发人员可以将应用程序及其依赖项打包成一个容器,并在任何支持Docker的环境中运行,而无需担心环境差异和配置问题。这使得应用程序的部署变得简单、快速和可靠。

Docker还提供了一套强大的工具和功能,如镜像管理、容器编排和网络管理等,使得应用程序的管理和扩展变得更加容易。此外,Docker的生态系统非常丰富,有大量的镜像和工具可供使用,为开发人员提供了更多的选择和便利。

1.4、Docker 的组成

Docker基础入门:从0开始学习容器化技术,容器化与编排技术深度解析,docker,Docker基础入门,容器化技术,云原生,镜像,容器,docker 命令

1、Docker 主机(Host):
一个物理机或虚拟机,用于运行Docker服务进程和容器,也称为宿主机,node节点。

2、Docker 服务端(Server):
Docker守护进程,运行docker容器。

3、Docker 客户端(Client):
客户端使用docker 命令或其他工具调用docker API。

4、Docker 仓库(Registry):
保存镜像的仓库(公有和私有仓库), 官方仓库:,可以搭建私有仓库harbor。

5、Docker 镜像(Images):
镜像可以理解为创建实例使用的模板,用来创建容器服务,可以通过镜像创建多个容器。

6、Docker 容器(Container):
容器是从镜像生成对外提供服务的一个或一组服务。

Docker基础入门:从0开始学习容器化技术,容器化与编排技术深度解析,docker,Docker基础入门,容器化技术,云原生,镜像,容器,docker 命令

二、Docker安装

Docker是基于Go语言开发的!开源项目!
官网:https://www.docker.com/
文档地址:https://docs.docker.com/
Doker镜像仓库地址:https://hub.docker.com/

前提:

#1、系统内核为3.10以上、要求系统为64位(x86_64)
[root@zyl-server ~]# uname -r
3.10.0-1160.el7.x86_64
[root@zyl-server ~]# 

#2、查看系统版本
[root@zyl-server ~]# cat /etc/os-release
NAME="CentOS Linux"
VERSION="7 (Core)"
ID="centos"
ID_LIKE="rhel fedora"
VERSION_ID="7"
PRETTY_NAME="CentOS Linux 7 (Core)"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:centos:centos:7"
HOME_URL="https://www.centos.org/"
BUG_REPORT_URL="https://bugs.centos.org/"

CENTOS_MANTISBT_PROJECT="CentOS-7"
CENTOS_MANTISBT_PROJECT_VERSION="7"
REDHAT_SUPPORT_PRODUCT="centos"
REDHAT_SUPPORT_PRODUCT_VERSION="7"

[root@zyl-server ~]# 

2.1、卸载旧版Docker

sudo yum remove docker*
###或者使用
sudo yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine

2.2、需要的安装包依赖

yum install -y yum-utils

Docker基础入门:从0开始学习容器化技术,容器化与编排技术深度解析,docker,Docker基础入门,容器化技术,云原生,镜像,容器,docker 命令

2.3、设置镜像仓库

###使用国内镜像仓库地址
yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo   #国外

yum-config-manager \
    --add-repo \
    http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo  #国内

Docker基础入门:从0开始学习容器化技术,容器化与编排技术深度解析,docker,Docker基础入门,容器化技术,云原生,镜像,容器,docker 命令

2.4、更新yum软件包索引

yum makecache fast

Docker基础入门:从0开始学习容器化技术,容器化与编排技术深度解析,docker,Docker基础入门,容器化技术,云原生,镜像,容器,docker 命令

2.5、安装Docker–社区版

相关版本:docker-ce(社区版)、 docker-ee(企业版)。

docker-ce ----->社区版
docker-ce-cli ----->命令行
containerd.io ----->docker容器化运行环境

##默认不指定版本则安装最新版。
yum install docker-ce docker-ce-cli containerd.io

##指定版本安装
yum install -y docker-ce-20.10.7 docker-ce-cli-20.10.7  containerd.io-1.4.6

Docker基础入门:从0开始学习容器化技术,容器化与编排技术深度解析,docker,Docker基础入门,容器化技术,云原生,镜像,容器,docker 命令

2.6、配置镜像加速(阿里云加速器地址–每个人地址不一致):

如何获取自己阿里云的镜像加速地址:
1、登录后打开阿里云的控制台
2、在控制台中找到“容器镜像服务”
Docker基础入门:从0开始学习容器化技术,容器化与编排技术深度解析,docker,Docker基础入门,容器化技术,云原生,镜像,容器,docker 命令

###1、通过修改daemon配置文件/etc/docker/daemon.json来使用加速器
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://lqwtpdhx.mirror.aliyuncs.com"]
}
EOF

###2、修改保存后,重启Docker以使配置生效。
sudo systemctl daemon-reload 
sudo systemctl restart docker

##3、查看配置是否生效。
##执行 docker info,查看是否含有如下信息(最后):

Registry Mirrors:
  https://lqwtpdhx.mirror.aliyuncs.com/

Docker基础入门:从0开始学习容器化技术,容器化与编排技术深度解析,docker,Docker基础入门,容器化技术,云原生,镜像,容器,docker 命令
Docker基础入门:从0开始学习容器化技术,容器化与编排技术深度解析,docker,Docker基础入门,容器化技术,云原生,镜像,容器,docker 命令

2.7、启动 | 停止Docker

systemctl start docker      #启动
systemctl stop docker       #停止
systemctl restart docker    #重启
systemctl status docker     #查看状态
systemctl enable docker     #开机自启

[root@zyl-server ~]# systemctl start docker
[root@zyl-server ~]# docker version  #查看是否安装成功

Docker基础入门:从0开始学习容器化技术,容器化与编排技术深度解析,docker,Docker基础入门,容器化技术,云原生,镜像,容器,docker 命令

2.8、测试–hello-world

docker run hello-world

Docker基础入门:从0开始学习容器化技术,容器化与编排技术深度解析,docker,Docker基础入门,容器化技术,云原生,镜像,容器,docker 命令

2.9、查看Docker镜像

[root@zyl-server ~]# docker images
REPOSITORY    TAG       IMAGE ID       CREATED         SIZE
hello-world   latest    feb5d9fea6a5   23 months ago   13.3kB
[root@zyl-server ~]# 

2.10、Docker进程查看

[root@zyl-server ~]# ps -ef |grep docker
root       1502      1  0 22:07 ?        00:00:00 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
root       1794   1266  0 22:16 pts/0    00:00:00 grep --color=auto docker
[root@zyl-server ~]# 

三、Docker常用命令

Docker基础入门:从0开始学习容器化技术,容器化与编排技术深度解析,docker,Docker基础入门,容器化技术,云原生,镜像,容器,docker 命令

3.1、帮助命令

docker version         #docker版本
docker info            #查看系统信息,镜像和容器数量
docker 命令 --help     #帮助命令

3.2、镜像查找命令

#1、查看本机上的镜像
docker images       

[root@zyl-server ~]# docker images
REPOSITORY    TAG       IMAGE ID       CREATED         SIZE
hello-world   latest    feb5d9fea6a5   23 months ago   13.3kB
[root@zyl-server ~]# 

#可选项
docker images -a        #列出本地所有镜像,含历史镜像
docker images  -q       #只显示镜像id

Docker基础入门:从0开始学习容器化技术,容器化与编排技术深度解析,docker,Docker基础入门,容器化技术,云原生,镜像,容器,docker 命令

#2、镜像搜索,如搜索nginx、mysql
docker search nginx
docker search mysql


#可选项,通过收藏等过滤
docker search nginx --filter=STARS=3000
docker search mysql --filter=STARS=3000

#3、  镜像搜索前5个(默认前20)
docker search --limit 5 镜像名称   

3.3、镜像下载命令

docker pull mysql   #镜像下载

docker pull 镜像名[:tag]  ,如果不写tag,默认最后一个latest,下载最新版本

docker pull mysql:5.7  #指定版本下载

3.4、镜像删除命令

docker rmi -f 镜像id  #删除指定镜像

docker rmi -f 镜像id 镜像id  镜像id  #删除多个镜像

docker rmi -f $(docker images -aq)  #删除所有镜像

3.5、容器、数据卷、镜像等空间查看

[root@zyl-server ~]# docker system df
TYPE            TOTAL     ACTIVE    SIZE      RECLAIMABLE
Images          1         1         13.26kB   0B (0%)
Containers      1         0         0B        0B
Local Volumes   0         0         0B        0B
Build Cache     0         0         0B        0B
[root@zyl-server ~]# 

四、容器命令

镜像是创建docker容器的基础,有了镜像,才可以下载容器。即容器是镜像的运行实体。而仓库的作用则是存储和分发镜像。

4.1、下载容器

docker pull nginx   #下载容器

4.2、启动容器

docker run [可选参数] image

参数说明

--name="Name"   容器名,用来区分容器
-d              后台方式运行
-it             使用交互式方式运行,进入容器查看命令
-p              指定容器端口  80808080
-P              随机指定端口

4.2、测试—交互式启动centos

1、启动、 #交互式启动并进入容器
[root@zyl-server ~]# docker run -it centos /bin/bash
[root@11122b0ec822 /]# ls
bin  dev  etc  home  lib  lib64  lost+found  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var
[root@11122b0ec822 /]# 

2、退出容器  
exit   #退出并停止运行
Ctrl+P+Q #退出不停止


docker ps 列出所有运行中的容器

docker ps -a  # 列出正在运行的容器,并列出历史运行过的容器

docker ps -n=?    #显示最近创建的容器

[root@zyl-server ~]# docker ps
CONTAINER ID   IMAGE     COMMAND       CREATED              STATUS              PORTS     NAMES
11122b0ec822   centos    "/bin/bash"   About a minute ago   Up About a minute             distracted_wing
[root@zyl-server ~]# docker ps -n=1
CONTAINER ID   IMAGE     COMMAND       CREATED         STATUS         PORTS     NAMES
11122b0ec822   centos    "/bin/bash"   2 minutes ago   Up 2 minutes             distracted_wing
[root@zyl-server ~]# 

Docker基础入门:从0开始学习容器化技术,容器化与编排技术深度解析,docker,Docker基础入门,容器化技术,云原生,镜像,容器,docker 命令

4.3、测试—后台启动容器

#命令  
docker run -d 镜像名  ##重启之后不会自动运行


docker run -d --restart=always 镜像名  ##重启之后自动运行容器

#启动后centos容器停止运行,原因,docker使用后台运行,就必须要有一个前台进程,docker发现没有应用,就会停止运行

[root@zyl-server ~]# docker run -d centos
ab35c8c20470fe9faaed153b1f245c557838d5a7006c9d9b3cfbd5042dcf8923
[root@zyl-server ~]# docker ps
CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES
[root@zyl-server ~]# 

解决---使用命令:  
docker run -t -d centos

[root@zyl-server ~]# docker ps
CONTAINER ID   IMAGE     COMMAND                  CREATED          STATUS          PORTS     NAMES
780530eaf656   centos    "/bin/bash"              4 seconds ago    Up 4 seconds              wizardly_dhawan
95420eae9ad9   nginx     "/docker-entrypoint.…"   10 minutes ago   Up 10 minutes   80/tcp    great_pasteur
[root@zyl-server ~]# 

4.3、删除容器

docker rm 容器id            #删除指定容器,不能删除正在运行的容器

docker rm -f $(docker ps -aq)    #全部删除
docker ps -a -q|xargs docker rm   #全部删除

4.4、常用容器命令

docker start 容器id/容器名  ##启动
docker restart 容器id/容器名  ##重启
docker stop  容器id/容器名  ##停止
docker kill 容器id/容器名   ##kill进程
docker ps   ###列出当前运行的容器
docker ps | grep 容器id/容器名   ## 查看进程是否正常
docker ps -a ###列出所有容器

五、Docker其他命令

5.1、查看日志

docker logs  -t -f  --tail  818a1b71af6c 

  
docker logs  -t -f  --tail  [条数]  818a1b71af6c   显示10[root@zyl-server ~]# docker logs -t -f --tail  95420eae9ad9
"docker logs" requires exactly 1 argument.
See 'docker logs --help'.

Usage:  docker logs [OPTIONS] CONTAINER

Fetch the logs of a container
[root@zyl-server ~]# 

5.2、查看容器进程信息

docker top  容器id

[root@zyl-server ~]# docker top 95420eae9ad9
UID                 PID                 PPID                C                   STIME               TTY                 TIME                CMD
root                11067               11047               0                   23:11               ?                   00:00:00            nginx: master process nginx -g daemon off;
101                 11111               11067               0                   23:11               ?                   00:00:00            nginx: worker process
101                 11112               11067               0                   23:11               ?                   00:00:00            nginx: worker process
[root@zyl-server ~]# 

5.3、查看容器元数据

docker inspect  容器id

[root@zyl-server ~]#  docker inspect 95420eae9ad9

5.4、查看、进入当前正在运行的容器

方式一、docker exec -it  容器id /bin/bash     #进入容器,开启一个新的终端,可以命令操作

[root@zyl-server ~]# docker exec -it 780530eaf656 /bin/bash
[root@818a1b71af6c /]# ls
bin  dev  etc  home  lib  lib64  lost+found  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var
[root@818a1b71af6c /]#

方式二、docker attach 容器id           #进入正在运行的终端,不会启动新进程

[root@zyl-server ~]# docker attach 780530eaf656
[root@818a1b71af6c /]# ls
bin  dev  etc  home  lib  lib64  lost+found  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var
[root@818a1b71af6c /]#

5.5、从容器拷贝文件到主机

docker cp 容器id:容器路径   目的主机路径

[root@zyl-server ~]# docker exec -it 780530eaf656  /bin/bash
[root@780530eaf656 /]# ls
bin  dev  etc  home  lib  lib64  lost+found  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var
[root@780530eaf656 /]# 
[root@780530eaf656 /]# cd home/
[root@780530eaf656 home]# touch test.java
[root@780530eaf656 home]# ls
test.java
[root@780530eaf656 home]# pwd
/home
[root@780530eaf656 home]# exit  ##退出不停止
exit
[root@zyl-server ~]# 

###从docker 内部的小型centos 拷贝文件到主机
[root@zyl-server ~]# docker cp 780530eaf656:home/test.java /
Successfully copied 1.54kB to /
[root@zyl-server ~]# cd /
[root@zyl-server /]# ls
bin  boot  dev  etc  home  lib  lib64  media  mnt  opt  proc  root  run  sbin  srv  sys  test.java  tmp  usr  var
[root@zyl-server /]# 

Docker基础入门:从0开始学习容器化技术,容器化与编排技术深度解析,docker,Docker基础入门,容器化技术,云原生,镜像,容器,docker 命令文章来源地址https://www.toymoban.com/news/detail-652045.html


💖The End💖点点关注,收藏不迷路💖

到了这里,关于Docker基础入门:从0开始学习容器化技术的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 49学习容器管理平台 Docker Swarm 的基本概念和应用,包括节点管理、服务编排

    Docker Swarm 是 Docker 官方提供的容器编排工具,可以管理多个 Docker 节点,并支持自动化扩展、负载均衡等功能。下面是 Docker Swarm 的基本概念和使用方法,包括节点管理和服务编排。 在 Docker Swarm 中,一个或多个 Docker 节点组成一个 Swarm 集群,其中一个节点是 Swarm Manager,负责

    2024年02月05日
    浏览(36)
  • 云计算:从基础架构原理到最佳实实之:云计算容器化与微服务架构

    作者:禅与计算机程序设计艺术 云计算(Cloud Computing)已经成为当今信息技术领域的热门话题,其带来的高性价比、弹性可扩展、按需付费等特性,正在成为各行各业互联网公司及个人的日常工作方式。本文将从云计算架构的基础原理出发,系统地介绍云计算中常用的容器技

    2024年02月06日
    浏览(29)
  • 容器技术发展和编排技术演进之路

    目录 Jail 时代 1979 年 贝尔实验室发明 chroot 2000 年 FreeBSD 4.0 发行 FreeBSD Jail 2001 年 Linux VServer 发行 2004 年 Solaris Containers 发行 云时代 2006 年 google 推出 Process Containers 2008 年 LXC 推出 2011 年 CloudFoundry 推出 Warden 2013 年 LMCTFY 启动 2013 年 Docker 推出到风靡全球 云原生时代 Google Docke

    2024年02月12日
    浏览(43)
  • 【Docker】Docker容器编排

    docker compose 实现单机容器集群编排管理(使用一个模板文件定义多个应用容器的启动参数和依赖关系,并使用docker compose来根据这个模板文件的配置来启动容器) Docker Compose 是 Docker 的独立产品,因此需要安装 Docker 之后在单独安装 Docker Compose #下载 curl -L https://github.com/docke

    2024年02月15日
    浏览(40)
  • Docker Compose 容器编排

    Docker compose 实现单机容器集群编排管理(使用一个模板文件定义多个应用容器的启动参数和依赖关系,并使用docker compose来根据这个模板文件的配置来启动容器) 通俗来说就是把之前的多条docker run启动容器命令 转换为docker-compose.yml配置文件。 Docker compose 三大概念 项目/工程

    2024年02月15日
    浏览(30)
  • Docker啥是容器编排?

    Docker容器编排是一种管理和协调多个Docker容器的技术,旨在简化容器化应用程序的部署、扩展和管理。在现代应用开发中,容器化已经成为一种流行的部署方式,Docker是其中应用最广泛的容器化技术。然而,当应用由许多容器组成时,手动管理和协调这些容器可能会变得复杂

    2024年02月15日
    浏览(28)
  • Docker 容器编排利器 Docker Compose

    目录 一、Docker Compose 简介 二、Docker Compose 安装 2.1 Mac、Windows 平台默认支持 2.2 Linux 安装(通过包管理) 2.2.1 安装 2.2.2 测试 2.2.3 卸载 2.3 使用PIP 安装与卸载 2.3.1 PIP安装 2.3.2 PIP 卸载 三、基本使用 3.1 术语 3.2 部署Flask 应用 四、Compose 常用命令 4.1 命令对象与格式 4.2 docker-compose

    2024年03月26日
    浏览(40)
  • docker (十)-docker compose容器编排

    在实际工作中,部署一个应用可能需要部署多个容器,一个一个部署非常不方便。docker compose可以一键部署和启动多个容器,它使用yaml文件来编排服务。github和docker hub很多项目都提供了docker-compose.yaml文件,我们可以一键部署项目,非常方便。 这里可以使用 vscode 去学习dock

    2024年02月21日
    浏览(38)
  • Docker六 | Docker Compose容器编排

    目录 Docker Compose 基本概念 使用步骤  常用命令  Docker-Compose是Docker官方的开源项目,负责实现对Docker容器集群的快速编排。Compose可以管理多个Docker容器组成一个应用。 需要定义一个YAML格式的配置文件docker-compose.yml,写好多个容器之间的调用关系,然后只需一个命令就能同时

    2024年02月02日
    浏览(34)
  • Docker高级:Compose 容器编排

    Compose 是Docker公司推出的一个软件,可以管理多个Docker容器组成一个应用。我们只需要定义一个 YAML 格式的配置文件 docker-compose.yaml 配置好多个容器之间的调用关系 ,最后只需要一个命令,就可以同时控制这些容器进行启动 / 关闭。Compose 允许用户通过一个单独的 docker-compo

    2024年02月06日
    浏览(36)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包