Notes de Docker - introduction et installation + configuration de Centos

Évolution historique du déploiement de projets

  1. L'ère des machines physiques

    Déploiement très lent, coût élevé, gaspillage de ressources, difficile à étendre et à migrer, et limité par le matériel

  2. Ère de la machine virtuelle

    Plusieurs machines virtuelles peuvent être créées sur une machine physique, et les machines virtuelles sont isolées les unes des autres, et les ressources de la machine physique peuvent être regroupées et gérées

    Traits:

    1. Déploiement multiple
    2. Les ressources de la machine physique sont gérées via la mise en commun
    3. Les ressources utilisées entre différentes machines virtuelles sont isolées les unes des autres
    4. Facile à développer
    5. Cependant, le système d'exploitation doit être installé, ce qui est encombrant
  3. L'ère de la conteneurisation

    Il peut être simplement compris comme une technologie de virtualisation qui n'a pas besoin d'installer un système d'exploitation

    Insérez la description de l'image ici

Scénarios d'application de la technologie de conteneurisation

  1. Méthode de migration standardisée
  2. Configuration unifiée des paramètres
  3. Déploiement automatisé
  4. Surveillance du cluster d'applications
  5. Communication pratique entre le développement et l'exploitation et la maintenance

Application conteneurisée d'Alibaba Cloud / Tencent Cloud: Elle utilise une méthode hybride de machine virtuelle + conteneur Docker.

Insérez la description de l'image ici

Introduction et installation de Docke

introduction

  1. Docker est un moteur de conteneur d'applications entièrement open source basé sur Go
  2. Utilisation complète du mécanisme de bac à sable, le coût de création ou de destruction d'un conteneur est extrêmement faible
  3. La technologie de conteneurisation n'est pas seulement un produit de Docker, mais Docker est synonyme de technologie de conteneurisation
  4. Docker dispose également de certaines fonctions de virtualisation. En plus de créer des conteneurs, il peut également demander des ressources provenant de machines physiques locales.

traits

  1. Fournit un emballage d'application standardisé
  2. Combien de ressources matérielles sont nécessaires pour cette application, telles que la quantité de CPU et de mémoire nécessaires, ces informations sont toutes décrites dans Docker

version

  1. Docker a été scindé en Community Edition (CE) et Enterprise Edition (EE) en 2016

Installer Docker

Basé sur CentOS7

# 第1个yum-utils组件,是yum安装工具包,可以简化安装源的配置过程
# 后2个组件,是docker做数据存储需要的驱动包
yum install -y yum-utils device-mapper-persistent-data lvm2

# 下面这个命令是上面yum-utils包提供的简化工具
# 用于修改yum的安装源
# 因为默认docker的源是在国外,很慢。所以将其修改为阿里云的安装源
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

# 下面的命令,让yum自动检测,哪个安装源是最快的,并优先使用它
yum makecache fast

# 准备工作完毕,下面开始安装docker
yum -y install docker-ce

# 如果先前安装过docker,可以先根据下面步骤进行删除
yum list installed | grep docker
# 然后把列出来的yum包挨个用下面命令进行删除
sudo yum -y remove ****
# 最后,删除/var/lib/docker/,这个目录存放着docker的文件
rm -rf /var/lib/docker

Démarrer le service Docker

# 启动docker服务
service docker start
# 或者
systemctl docker start
# 进行验证,查看docker版本号
docker version
[root@localhost ~]# docker version
Client: Docker Engine - Community
 Version:           19.03.9
 API version:       1.40
 Go version:        go1.13.10
 Git commit:        9d988398e7
 Built:             Fri May 15 00:25:27 2020
 OS/Arch:           linux/amd64
 Experimental:      false

Server: Docker Engine - Community
 Engine:
  Version:          19.03.9
  API version:      1.40 (minimum version 1.12)
  Go version:       go1.13.10
  Git commit:       9d988398e7
  Built:            Fri May 15 00:24:05 2020
  OS/Arch:          linux/amd64
  Experimental:     false
 containerd:
  Version:          1.2.13
  GitCommit:        7ad184331fa3e55e52b890ea95e65ba581ae3429
 runc:
  Version:          1.0.0-rc10
  GitCommit:        dc9208a3303feef5b3839f4323d9beb36df0a9dd
 docker-init:
  Version:          0.18.0
  GitCommit:        fec3683

Vous pouvez voir qu'il existe Docker Client et Docker Server, car Docker est une architecture CS. Les commandes Docker sont fournies par Docker Client et le Docker Client par défaut se connecte au Docker Server local

Exécuter le conteneur Docker

# 拉取hello-world镜像
docker pull hello-world
# 拉取完成后,创建并运行容器
docker run hello-world
[root@localhost ~]# docker run hello-world

Hello from Docker!
This message shows that your installation appears to be working correctly.

To generate this message, Docker took the following steps:
 1. The Docker client contacted the Docker daemon.
 2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
    (amd64)
 3. The Docker daemon created a new container from that image which runs the
    executable that produces the output you are currently reading.
 4. The Docker daemon streamed that output to the Docker client, which sent it
    to your terminal.

To try something more ambitious, you can run an Ubuntu container with:
 $ docker run -it ubuntu bash

Share images, automate workflows, and more with a free Docker ID:
 https://hub.docker.com/

For more examples and ideas, visit:
 https://docs.docker.com/get-started/

Configurer et utiliser le service d'accélération Alibaba Cloud

# 浏览器打开 aliyun.com
# 搜索 “容器镜像服务”
# 登录(使用支付宝扫码登录)
# 为自己的镜像服务创建密码,我的密码是*****
# 找到最左侧的镜像加速器
# 根据文档中的说明进行配置
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
    
    
  "registry-mirrors": ["https://******.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

# /etc/docker/daemon.json 是docker的默认配置文件
# docker在启动时会自动加载这个文件
# 如此,docker在下载镜像时,会优先使用上面的地址进行镜像拉取

Quelques autres configurations sur les centos

Ajouter docker en tant que démarrage automatique au démarrage

# 配置 centos 7 的服务
systemctl start docker # 启动docker服务
systemctl enable docker # 将docker服务设为开机自启动
systemctl list-unit-files # 查看所有服务 

Configurer la source yum d'Ali

# centos 7配置阿里的yum源和epel源
#配置阿里云yum源
yum install -y wget
cd  /etc/yum.repos.d/
mv  CentOS-Base.repo CentOS-Base.repo.bak
wget  http://mirrors.aliyun.com/repo/Centos-7.repo
mv Centos-7.repo CentOS-Base.repo
#配置epel源
wget https://mirrors.aliyun.com/repo/epel-7.repo
#清除缓存并更新
yum clean all
yum makecache
yum update

Modifiez les paramètres du pare-feu pour exposer l'interface à l'extérieur

# 关于centos 7的防火墙,在docker运行时,需要做端口映射,并将centos服务器的端口对外暴露
systemctl stop firewalld # 关闭防火墙
systemctl start firewalld #开启
systemctl enable firewalld # 开机启动
systemctl disable firewalld # 取消开机启动
firewall-cmd --help # 查看帮助
firewall-cmd --state  # 查看防火墙状态
firewall-cmd --list-port # 查看已放行的端口
# 永久放行8000/tcp端口,放行完后需要reload一下
firewall-cmd --zone=public --add-port=8000/tcp --permanent
firewall-cmd --reload # 更新规则,不重启服务
firewall-cmd --complete-reload # 更新规则,重启服务

firewall-cmd --remove-port=8000/tcp --permanent
firewall-cmd --query-port=8000/tcp

À propos de llla situation où la commande est introuvable

# 关于ll命令找不到的情况
# ll不是linux原生命令,而是ls -l的别名
# 通过修改~/.bashrc文件,可以指定命令的别名
vi ~/.bashrc
# 打开.bashrc后,添加如下文本
alias ll = 'ls -l'
# 然后刷新一下.bashrc 即可
source ~/.bashrc

À propos de la configuration du plugin Powerline-Status

# 安装powerline-status
sudo yum install epel-release
sudo yum install python-pip
pip install powerline-status
# 查看powerline安装位置
pip show powerline-status
# 配置 ~/.bashrc文件,添加如下内容
if [ -f `which powerline-daemon` ]; then
  powerline-daemon -q
  POWERLINE_BASH_CONTINUATION=1
  POWERLINE_BASH_SELECT=1
  . /usr/lib/python2.7/site-packages/powerline/bindings/bash/powerline.sh
fi

# 刷新~/.bashrc,使其生效
source ~/.bashrc

# 如何让vi实现代码高亮
# 先安装vim增强包
yum -y install vim-enhanced
# 设置vi和vim的别名
vi ~/.bashrc
# 或者
vi /etc/profile
# 打开文件后,添加命令别名
alias vi=vim
# 然后刷新一下
source ~/.bashrc
# 或者
source /etc/profile
# 然后用vi打开文件,即可看到代码高亮
# 默认是开启了代码高亮
# 也可以在vi环境下,使用
:syntax off # 来关闭代码高亮
:syntax on # 开启代码高亮

Je suppose que tu aimes

Origine blog.csdn.net/vcj1009784814/article/details/106270032
conseillé
Classement