知识库
并发编程
  • 分类
  • 标签
  • 归档
友情连接

luoliang

吾生也有涯,知也无涯
并发编程
  • 分类
  • 标签
  • 归档
友情连接
  • docker的基本概念和用法
    • docker的基本概念
    • docker的架构
      • Docker daemon(后台守护进程)
      • Docker client(客户端)
      • Containers(容器)
      • images(镜像)
      • Docker registries (注册中心)
    • 安装Docker
      • 1. 删除旧版本(如果新机器忽略)
      • 2. 设置yum下载
      • 3. 安装docker引擎
      • 4. 国内加速服务
    • 使用示例
      • 1. 部署一个Nginx应用
      • 2. 构建一个Spring Boot 镜像并运行
      • 3. 将镜像推送到私有仓库
    • docker compose
  • docker安装MySQL
  • docker-compose安装
  • k8s安装教程
  • k8s
weiluoliang
2023-09-20
目录

docker的基本概念和用法

# docker的基本概念

它是一种容器化技术,将应用运行在容器中,与其他应用隔离互不影响。很多应用部署在同一台物理机上,服务之间会争抢系统资源,一个服务过载可能会影响其他服务,为了解决这种问题,出现了虚拟机,在物理机上装了很多虚拟机,虚拟机里面运行应用。某虚拟机里面的应该不会影响其他应用,但是我们发现它的资源没有得到充分的运用,很多资源消耗在虚拟机上了,真正分配到应用上的资源很少。

# docker的架构

# Docker daemon(后台守护进程)

docker后台守护进程,负责监听客户端命令行请求和管理docker对象(镜像,容器,网络和数据卷)

# Docker client(客户端)

Docker client 是用户和docker交互的一种方式,例如使用 docker run 等命令,客户端发送命令给docker后台进程 。

# Containers(容器)

容器是一个镜像的实例,我们的APP就运行在容器中实现了运行环境的隔离,但是它又是非常的轻量级,比虚拟机省资源。

# images(镜像)

它是一个只读模板,用于描述一个可运行的容器,类似于Java中类和对象的关系

# Docker registries (注册中心)

注册中心保存docker镜像,Docker Hub (opens new window) 是公共的注册中心,包含很多开源软件的镜像,你可以从这里 下载你需要的镜像(Tomcat,Java,Redis,Nginx等)

# 安装Docker

# 1. 删除旧版本(如果新机器忽略)

sudo yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine
1
2
3
4
5
6
7
8

# 2. 设置yum下载

sudo yum install -y yum-utils
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
1
2

# 3. 安装docker引擎

# 查看版本
$ yum list docker-ce --showduplicates | sort -r 
Loading mirror speeds from cached hostfile
Loaded plugins: fastestmirror
docker-ce.x86_64            3:24.0.6-1.el7                      docker-ce-stable
docker-ce.x86_64            3:24.0.5-1.el7                      docker-ce-stable
docker-ce.x86_64            3:24.0.4-1.el7                      docker-ce-stable

# 安装指定版本
$  sudo yum install docker-ce-<VERSION_STRING> docker-ce-cli-<VERSION_STRING> containerd.io docker-buildx-plugin docker-compose-plugin

# 直接安装最新版本
$ sudo yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin 

$ systemctl start docker
$ systemctl enable docker
# 检查安装版本 
$ docker version  
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18

# 4. 国内加速服务

加速站点来源 (opens new window)

配置镜像加速器 ,编辑配置文件 /etc/docker/daemon.json

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<EOF
{
    "registry-mirrors": [
        "https://hub.uuuadc.top",
        "https://docker.anyhub.us.kg",
        "https://dockerhub.jobcher.com",
        "https://dockerhub.icu",
        "https://docker.ckyl.me",
        "https://docker.awsl9527.cn"
    ]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

# 使用示例

# 1. 部署一个Nginx应用

快速部署:

$ docker run -d --name nginx -p 80:80 nginx 
1

# 2. 构建一个Spring Boot 镜像并运行

Dockerfile内容示例

# 使用Java 8 
FROM java:8

# 挂着一个目录
VOLUME /tmp

# 把jar包拷贝到容器中
ADD target/admin-server.jar app.jar

# 这个是给镜像使用者看的,告诉使用者容器暴露这个端口
EXPOSE 9080

# 接收参数 ,参数只有在构建节点有用
ARG env="dev"
# 环境变量,在启动阶段也生效
ENV env ${env}

# 容器启动时,会执行ENTRYPOINT的命令
ENTRYPOINT ["java","-jar","/app.jar","--spring.profiles.active=${env}"]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19

根据Dockerfile构建一个镜像,在Dockerfile所在的目录执行

$ docker build . 
1

# 3. 将镜像推送到私有仓库

# 创建私有仓库
$ docker run -d -p 5000:5000 --restart=always --name registry registry 

# 查看本机已有的仓库
$ docker images

REPOSITORY            TAG        IMAGE ID       CREATED         SIZE
myjob/admin-server    latest     60779a9b5f5c   47 hours ago    663MB
nginx                 latest     f5a6b296b8a2   13 days ago     187MB

# 使用docker tag打标签
 $ docker tag myjob/admin-server:latest 127.0.0.1:5000/admin-server:latest
 
 # 使用 docker push上传镜像
 $ docker push 127.0.0.1:5000/admin-server:latest 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

# docker compose

sudo curl -L "https://github.com/docker/compose/releases/download/1.29.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
1
chmod +x /usr/local/bin/docker-compose 
1
#docker
上次更新: 2024/08/26, 14:20:28
docker安装MySQL

docker安装MySQL→

最近更新
01
Linux常用命令
09-04
02
SpringBoot启动脚本
08-31
03
安装监控grafana
08-30
更多文章>
Theme by Vdoing | Copyright © 2022-2024 Evan Xu | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式