• Docker的基本使用


    Docker的安装与使用:

    一、Docker的安装

    1. 建议关闭防火墙

      关闭防火墙
      systemctl stop firewalld.service
      检查防火墙状态
      systemctl status firewalld.service
      开启防火墙改
      systemctl start firewalld.service
      
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
    2. 添加docker软件包源:

      sudo yum-config-manager \
          --add-repo \
           https://download.docker.com/linux/centos/docker-ce.repo
           默认地址是官方的,有的时候可能网络不太好,国内的可以设置为阿里的源
           http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
      
      • 1
      • 2
      • 3
      • 4
      • 5
    3. 安装docker-ce

      yum install -y docker-ce
      
      • 1
    4. 启动/关闭/版本/详细信息

      启动
      systemctl start docker
      关闭
      systemctl stop docker
      版本
      docker version
      详细信息
      docker info
      
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7
      • 8
    5. 设置开机启动

      systemctl enable docker
      
      • 1
    6. 配置加速器

      vi /etc/docker/daemon.json

      {
      	"registry-mirrors": ["https://b9pmyelo.mirror.aliyuncs.com"]
      }
      
      • 1
      • 2
      • 3

      注意:配置完要重新读取一下

      systemctl daemon-reload
      systemctl restart docker
      
      • 1
      • 2

    二、Docker的常用命令

    启动一个容器
    docker run -d nginx		或者	docker container run -d nginx
    查看本地镜像
    docker image ls
    查看历史,构建步骤等
    docker history nginx
    显示镜像的详细信息
    docker inspect nginx
    从镜像仓库拉取一个镜像
    docker pull nginx(如果本地已经有这个镜像的话,就不会从远程的镜像仓库再去下载了)
    删除一个镜像
    docker rm nginx(可以加上-f)
    清除没有被容器引用的镜像
    docker image prune 清除一些不完整的镜像,没有使用到的镜像	(加上-a参数就是清除掉所有没有和容器关联的镜像)
    
    docker save redis -o redis.tar保存一个或多个镜像到一个tar的归档文件
    du -sh redis.tar查看归档包多大小
    解压归档文件tar xvf redis.tar
    docker load -i redis.tar导入到本地镜像仓库中
    上面的save和load常用于一台电脑链接不上网络,就得去找一台有网络的电脑去下载需要的镜像,下载完了再把镜像挪到那台没有网的电脑上。
    
    查看正在运行的容器
    docker ps
    查看容器内部的进程
    docker top 容器id
    指定端口号的启动容器
    docker run -d -p 8080:80 nginx
    
    docker run -d centos	退出
    docker run -d nginx		启动
    docker run -it -d centos	启动
    docker run -it -d nginx		启动
    -it一般是一块连用的,作用就是分配一个伪终端,这个伪终端就相当于一个进行。在运行docker run -d centos的时候是会退出的,因为运行的容器内部没有进程,所以会推出。但我们运行docker run -it -d centos的时候会给这个centos容器内部创建一个伪终端的进程,所以centos这个不会退出。
    
    docker exec -it 容器id bash
    进入容器终端并且的保留为容器终端的输入形式(-it和bash的结合作用)
    -d的意思就是让容易在后台运行,如果不加-d就会在当前终端进行运行。一般都是-d,因为我们一般会启动很多的容器
    
    docker run -d -e env=prod -p 88:80 --name web -h web --restart=always nginx
    创建nginx容器,指定环境变量env=prod,暴露对外端口为88,指定容器名字web,指定主机名 web,指定容器退出时策略为always(当docker重启后这个容器也会跟着重启)
    
    docker commit 容器名称	镜像名
    
    docker ps 
    -a:查看所有的容器
    -q:查看容器id
    清除所有的容器:docker rm -f $(docker ps -qa)
    
    持久化:
    docker run -d -p 8080:80 -v /opt/wwwroot/:/usr/share/nginx/html nginx
    将/opt/wwwroot/这个位置挂在到容器中的/usr/share/nginx/html这个位置,其实就相当于一个映射,可以理解为宿主机的目录覆盖了容器的那个目录。这种情况下我们查看容器中的这个目录会发现和宿主机的一模一样,当我们改了这里的东西,宿主机的对应位置也发生了改变;当我们改了宿主机的那个位置的文件,发现容器这种对应的文件也发生了响应变化。
    
    容器网络:
    容器在创建的时候,docker会分配一个ip地址,用于网络交互。
    1、外界访问容器内部:先访问宿主机的地址和开放的端口号,然后通过iptables实现的DNAT的一个机制,也就是目标网络地址转换,转换成容器的ip地址和对应的端口号,进而完成访问。
    2、容器访问外部:容器会根据iptables实现的SNAT源地址转换,转换成宿主机的地址,把数据包发送出去
    
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58

    三、Dockerfile的使用

    dockerfile构建对象:
    1、创建dockerfile文件	vi Dockerfile
    FROM centos:7
    RUN yum install epel-release -y && \
        yum install nginx -y
        CMD ["nginx", "-g", "daemon off;"]
    这里的&& \ 意思就是可以执行多行
    
    2、docker build -t nginx:v1 .		构建镜像
    -t是指定镜像的名称
    -f指定dockerfile的路径(默认读取Dockerfile的文件)
    .	读取当前目录的Dockerfile文件
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    四、Harbor的搭建与基本使用

    Harbor的部署与使用:(必须先安装Docker和Docker Compose)
    1、安装docker-compose:先把docker-compose下载下来,上传到服务器上
    2、将上传完的docker-compose移动到/use/local/bin/docker-compose
    3、给这个文件赋予执行权限:chmod +x /usr/local/bin/docker-compose
    4、检查docker-compose是否成功:docker-compose version
    
    1、Harbor的安装有两种:在线安装(10M左右需要有网)和离线安装(文件500多M)
    2、解压:tar zxvf harbor-offline-installer-v2.0.0.tgz
    3、进入barbor文件夹:cd barhor
    4、复制yml文件:cp harbor.yml.tmpl harbor.yml
    5、编辑yml文件:vi harbor.yml
    修改主机号:hostname:120.48.41.214
    注释掉https,因为我们没有证书:先注释https相关配置
    6、./prepare		准备
    7、./install.sh		安装
    8、访问:主机号是我们刚刚修改的IP地址,端口号默认80,密码默认Harbor12345,账号默认admin
    密码可以修改yml文件:
    harbor_admin_password: Harbor12345
    
    推送到镜像仓库上:
    1、需要先打个标签:docker tag tomcat:v1 120.48.41.214/library/tomcat:v1
    2、推送:docker push 120.48.41.214/library/nginx:v1
    注意:如果访问方式http方式,需要在yml文件上配置个可新人
    ss -antp | grep 443
    修改docker的json文件,加个可信任
    "insecure-registries":["120.48.41.214"]		注意:别忘了逗号
    3、重启docker:systemctl restart docker
    查看所有容器:docker-compose ps
    启动所有容器:docker-compose up -d
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
  • 相关阅读:
    JS之instanceof方法手写
    C. Random Events(思维+概率)
    树莓派 Raspberry Pi 与YOLOv8 结合进行目标检测
    基于ffmpeg进行视频解码
    (免费分享)基于javaweb,ssm旅游景点预定系统
    SQLite 中的日期和时间
    CEF内核浏览器安装、解决过滤图片、链接弹窗问题
    如何在 LaTeX 中画一个树状图(使用tikz和tikz-qtree包中的宏绘制树、森林、二叉树)
    Android . java中解析json数据中文变成问号
    进程控制(二)——minishell延续
  • 原文地址:https://blog.csdn.net/TianYinet/article/details/125564987