云原生 | Docker初体验

简介

docker是一个用来装应用的容器,就像杯子可以装水,笔筒可以放笔,书包可以放书,可以把hello word放在docker中,可以把网站放入docker中,可以把任何想得到的程序放在docker中.

docker 的图像结果

docker思想

集装箱

没有集装箱之前运输货物,东西零散容易丢失,有了集装箱之后货物不容易丢失,我们可以把货物想象成程序,目前我们要把程序部署到一台新的机器上,可能会启动不起来,比如少一些配置文件什么的或者少了什么数据,有了docker的集装箱可以保证我们的程序不管运行在哪不会缺东西.

运输方式

docker运输东西有一个超级码头,任何地方需要货物都由鲸鱼先送到超级码头,然后再由鲸鱼从超级码头把货物送到目的地去.对应的技术来说,比如我们要把台式机的应用部署到笔记本上,我们可能选择用QQ发过去或者用U盘拷过去,docker就标准化了这个过程,我们只需在台式机上执行一个docker命令,把鲸鱼派过来,把程序送到超级码头去,再在笔记本上执行一个docker命令,然后由鲸鱼把程序从超级码头送到笔记本上去.

docker解决的问题

系统环境不一致

开发:我本地没问题.运维:服务器没问题. 这个问题就变成了皮球.

如果一个应用要正常的启动起来需要什么?比如java web应用.

需要一个操作系统,操作系统之上要jdk,tomcat,我们的代码,配置文件.

操作系统的改变可能会导致我们的应用开不起来,比如我们调用了某些系统命令.

jdk版本也可能导致程序的运行失败.比如class文件需要1.7编译,我们装了个1.6的jdk.

tomcat版本也能导致失败,比如旧的版本一些配置在新版本中不再支持.

代码的话就比如应用了C盘,D盘的一个文件,或者是用了系统的一些环境编码.

配置的话我们可能少了某个配置文件等等.

下面docker来了,它把操作系统,jdk,tomcat,代码,配置全部放到集装箱里.再打包放到鲸鱼上,由鲸鱼给我们送到服务器上,在我的机器上怎么运行,在别的机器上也怎么运行.不会有任何的问题.一句话就是docker解决了运行环境不一致所带来的问题.

1、Linux安装Docker

# 移除旧版本docker
sudo yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine

# 配置docker yum源。
sudo yum install -y yum-utils
sudo yum-config-manager \
--add-repo \
http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo


# 安装 最新 docker
sudo yum install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

# 启动& 开机启动docker; enable + start 二合一
systemctl enable docker --now

# 配置加速
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://82m9ar63.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

了解docker容器的使用场景和优缺点更有利于对docker容器的理解。
从使用上来讲,传统的部署方式,环境和项目分开搭建部署,环境离散,不方便迁移。
docker容器实现了将环境和项目统一化部署,方便迁移,方便管理。——类似一个容器,集中式管理。

2、Docker初体验

1、基本命令

在这里插入图片描述

  1. 拉取镜像(下载)

    #不指定版本下载默认最新的
    docker pull nginx
    #指定版本下载
    docker pull nginx:1.26.0
    
  2. 查看镜像

    docker images
    

    在这里插入图片描述

  3. 运行镜像

    docker run hello-world
    #参数详解 -d:后台运行  --name:应用名称 -p:端口映射 外部param1 80对应docker容器param2 80   param4 镜像[TAG:镜像名称]
    docker run -d --name mynginx -p 80:80 nginx
    

    在这里插入图片描述

  4. 搜索镜像

    docker search nginx
    

    带ok标识符的表示官方的

    在这里插入图片描述

  5. 某个命令更多的其他命令

    docker xxx --help   如docker run --help
    
  6. 启动、重启、关闭

    docker stop 容器名称或容器id
    docker start 容器名称或容器id
    docker restart 容器名称或容器id
    
  7. 查看正在运行的docker

    # -a 可选  加入-a 查看关闭的容器
    docker ps [-a]
    

    在这里插入图片描述

    在这里插入图片描述

    status: Up启动状态,Exited关闭状态

  8. 删除容器\镜像

    #-f 可选:强制删除
    docker rm [-f] 容器名称或容器id
    docker rm -f d32
    #批量删除容器 $(docker ps -aq)
    docker rm $(docker ps -aq)
    #删除镜像
    docker rmi 镜像id
    

    在这里插入图片描述

  9. 提交容器

    # -m:提交信息 param2: 容器名称或者容器id   param3:镜像
    docker commit -m "update nginx" mynginx mynginx:v1.0
    

    在这里插入图片描述

  10. 保存镜像

#-o 打成tar包 param2:镜像
docker save -o mynginx.tar myngix:v1.0

在这里插入图片描述

  1. 加载镜像

    模拟同事机器什么环境都没有,加载镜像并且启动镜像

    docker load -i 包名
    docker load -i mynginx.tar
    

    在这里插入图片描述

云原生 | Docker详解Dockerfile、Compose、存储

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值