目录

一初识Docker安装基础案例

一、初识Docker【安装&基础案例】

开始学习docker容器技术,本文介绍如何安装docker、基本概念和一个简单的容器案例。

1. 安装docker

1.1 yum源方式安装

# step 1: 安装必要的一些系统工具
sudo yum install -y yum-utils
# Step 2: 添加软件源信息
yum-config-manager --add-repo 
# Step 3: 安装Docker
sudo yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
# Step 4: 开启Docker服务
sudo service docker start
# Step 5:安装校验
docker version
# 注意:
# 官方软件源默认启用了最新的软件,您可以通过编辑软件源的方式获取各个版本的软件包。例如官方并没有将测试版本的软件源置为可用,您可以通过以下方式开启。同理可以开启各种测试版本等。
# vim /etc/yum.repos.d/docker-ce.repo
# 将[docker-ce-test]下方的enabled=0修改为enabled=1
#
# 安装指定版本的Docker-CE:
# Step 1: 查找Docker-CE的版本:
# yum list docker-ce.x86_64 --showduplicates | sort -r
# Loading mirror speeds from cached hostfile
# Loaded plugins: branch, fastestmirror, langpacks
# docker-ce.x86_64 17.03.1.ce-1.el7.centos docker-ce-stable
# docker-ce.x86_64 17.03.1.ce-1.el7.centos @docker-ce-stable
# docker-ce.x86_64 17.03.0.ce-1.el7.centos docker-ce-stable
# Available Packages
# Step2: 安装指定版本的Docker-CE: (VERSION例如上面的17.03.0.ce.1-1.el7.centos)
# sudo yum -y install docker-ce-[VERSION]

开机自启动 systemctl enable docker --now docker 查看docker状态 systemctl status docker https://i-blog.csdnimg.cn/direct/56aff4426dab4b00b60e2a7663bf49d7.jpeg 配置镜像加速器 vim /etc/docker/daemon.json

{
"registry-mirrors": ["",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
""]
}

2. docker运行生态介绍

https://i-blog.csdnimg.cn/direct/4608646e2dbc41da9b6b1bc599b5170e.jpeg

2.1 Docker Host

用于安装Docker daemon的主机,并且该主机中可基于容器镜像运行容器。

2.2 Docker daemon

用于管理Docker Host中运行的容器、容器镜像、容器网络等,管理由Containerd.io提供的容器。

2.3 Registry

容器镜像仓库,用于存储已生成容器运行模板的仓库。用户使用时,可直接从容器镜像仓库中下载容器镜像,即容器运行模板,就可以运行容器镜像中的应用。

2.4 Docker client

Docker Daemon客户端工具,用于同Docker Daemon进行通信,执行用户指令,可部署在Docker Host上,也可以部署在其他主机,能够连接到Docker Daemon即可操作。

2.5 Image

把应用环境及计算资源打包方式生成可再用于启动容器的不可变的基础设施的模板文件,主要用于基于其启动一个容器。

2.6 Container

由容器镜像生成,用于应用程序运行的环境,包括容器镜像中所有文件及用户后添加的文件,属于基于容器镜像生成的可读写层,这也是应用程序活跃的空间。

2.7 Docker Desktop

仅限于MAC、Windows、部分Linux操作系统上安装使用。 提供了一个简单的界面,能够直接从第三方及其管理容器、应用程序和镜像,而无需使用CLI来执行核心操作。

3.运行一个nginx容器

3.1 使用docker run运行Nginx应用

docker run -d nginx:latest

[#28#root@bserptest15 ~]#docker run -d nginx:latest
Unable to find image 'nginx:latest' locally
latest: Pulling from library/nginx
7cf63256a31a: Pull complete
bf9acace214a: Pull complete
513c3649bb14: Pull complete
d014f92d532d: Pull complete
9dd21ad5a4a6: Pull complete
943ea0f0c2e4: Pull complete
103f50cb3e9f: Pull complete
Digest: sha256:9d6b58feebd2dbd3c56ab5853333d627cc6e281011cfd6050fa4bcf2072c9496
Status: Downloaded newer image for nginx:latest
fab79fdd522f85a06886b954f05ba9a1e4f7bdcc7ef09500c8384d3ac0054e33
  • docker run 启动一个容器
  • -d 把容器放在后台运行
  • nginx 应用容器镜像的名称,通常表示该镜像为某一个软件
  • latest 表示上述容器镜像的版本为最新版

3.2查看docker短ID号

docker ps 类似于Linux中的ps命令,查看正在运行的容器,加上- -all查看全部

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
fab79fdd522f nginx:latest "/docker-entrypoint.…" 5 minutes ago Up 5 minutes 80/tcp cool_panini

3.3查看容器的IP地址

docker inspect fab fab为容器ID的前三位 如下所示IP为172.17.0.2,网关为172.17.0.1

Networks": {
"bridge": {
"IPAMConfig": null,
"Links": null,
"Aliases": null,
"MacAddress": "02:42:ac:11:00:02",
"NetworkID": "bc10ff28da2dac28b75e6e4ef7a0e9e58903e35cb29c8748776177f499e52cdb",
"EndpointID": "8b343e6ce7f7986bd01141d2acc7bb5fafd62178737b4e7a57197a21599b0fb2",
"Gateway": "172.17.0.1",
"IPAddress": "172.17.0.2",

在创建容器后,系统会自动生成两个网卡docker0与veth3f1c78b@if6

  • docker0作为一个桥接,连接容器内的应用与系统
  • veth3f1c78b@if6负责本地网卡与docker的桥接 https://i-blog.csdnimg.cn/direct/e254ea9ed4cd4c648ee1efe541f895e8.jpeg

3.4访问容器内的nginx

curl  172.17.0.2

[#39#root@bserptest15 ~]#curl 172.17.0.2


Welcome to nginx!



# Welcome to nginx!

If you see this page, the nginx web server is successfully installed and
working. Further configuration is required.

For online documentation and support please refer to
[nginx.org](<http://nginx.org/>).  
Commercial support is available at
[nginx.com](<http://nginx.com/>).

*Thank you for using nginx.*