docker实战

docker 安装

  • 移除以前docker相关包

    1. sudo yum remove docker \
    2. docker-client \
    3. docker-client-latest \
    4. docker-common \
    5. docker-latest \
    6. docker-latest-logrotate \
    7. docker-logrotate \
    8. docker-engine
  • 配置yum源

    1. sudo yum install -y yum-utils
    1. sudo yum-config-manager \
    2. --add-repo \
    3. http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
  • 安装docker

    1. sudo yum install -y docker-ce docker-ce-cli containerd.io
  • 启动docker

    1. systemctl enable docker --now
  • 配置加速

    1. sudo mkdir -p /etc/docker
    1. sudo tee /etc/docker/daemon.json <<-'EOF'
    2. {
    3. "registry-mirrors": ["https://82m9ar63.mirror.aliyuncs.com"],
    4. "exec-opts": ["native.cgroupdriver=systemd"],
    5. "log-driver": "json-file",
    6. "log-opts": {
    7. "max-size": "100m"
    8. },
    9. "storage-driver": "overlay2"
    10. }
    11. EOF
    1. sudo systemctl daemon-reload
    1. sudo systemctl restart docker

docker 命令

  • 拉去镜像

    1. # 默认最新版
    2. docker pull nginx
    3. # 指定版本
    4. docker pull nginx:1.20.1
    5. # 查看镜像
    6. docker images

  • 启动容器

    1. docker run [OPTIONS] IMAGE [COMMAND] [ARG...]

    比如,启动nginx应用容器,并映射88端口

    1. # -d:后台运行
    2. # -p:端口映射
    3. # --restart=always: 开机自启
    4. docker run --name=mynginx -d --restart=always -p 88:80 nginx
  • 查看正在运行的容器

  1. docker ps

  • 停止容器

    1. docker stop 容器id/名字
  • 再次启动

    1. docker start 容器id/名字
  • 删除停止的容器

    1. docker rm 容器id/名字
    2. docker rm -f mynginx #强制删除正在运行中的
  • 应用开机自启

    1. docker update 容器id/名字 --restart=always

修改容器内容

  • 进容器内部修改

    1. # 进入容器内部的系统,修改容器内容
    2. docker exec -it 容器id /bin/bash
  • 挂载数据到外部修改

    1. docker run --name=mynginx \
    2. -d --restart=always \
    3. -p 88:80 -v /data/html:/usr/share/nginx/html:ro \
    4. nginx
    5. # 修改页面只需要去 主机的 /data/html
  • 提交改变

    1. docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]
    2. docker commit -a "author" -m "首页变化" 341d81f7504f nginx:v1.0

推送远程仓库

  1. docker tag local-image:tagname new-repo:tagname
  2. docker push new-repo:tagname
  1. # 把旧镜像的名字,改成仓库要求的新版名字
  2. docker tag nginx:v1.0 author/nginx:v1.0
  3. # 登录到docker hub
  4. docker login
  5. # 推送
  6. docker push author/nginx:v1.0
  7. docker logout(推送完成镜像后退出)
  8. # 别的机器下载
  9. docker pull author/nginx:v1.0

docker部署项目

  1. 先写一个spring boot项目,使用maven打包

  2. 编写Dockerfile文件

    1. FROM openjdk:8-jdk-slim
    2. LABEL maintainer=author
    3. COPY target/*.jar /app.jar
    4. ENTRYPOINT ["java","-jar","/app.jar"]
  3. 将 target 目录和 Dockerfile 文件放在一个文件夹里上传到服务器(可以把target目录里除了jar包外的文件都删除)

  4. 构建镜像

    1. docker build -t java-demo:v1.0 .
  5. 启动容器

    1. docker run -d -p 8080:8080 --name myjava-app java-demo:v1.0

doker实战的更多相关文章

  1. Linux实战教学笔记20:初级阶段结束,中级阶段起航

    第二十节 第一阶段结束第二阶段起航 标签(空格分隔): Linux实战教学笔记-陈思齐 一,承上 Linux实战教学笔记的基础核心能力阶段也就是第一阶段到此也就告一段落了.如果同学们能基本全都掌握,再 ...

  2. SSH实战 · 唯唯乐购项目(上)

    前台需求分析 一:用户模块 注册 前台JS校验 使用AJAX完成对用户名(邮箱)的异步校验 后台Struts2校验 验证码 发送激活邮件 将用户信息存入到数据库 激活 点击激活邮件中的链接完成激活 根 ...

  3. GitHub实战系列汇总篇

    基础: 1.GitHub实战系列~1.环境部署+创建第一个文件 2015-12-9 http://www.cnblogs.com/dunitian/p/5034624.html 2.GitHub实战系 ...

  4. MySQL 系列(四)主从复制、备份恢复方案生产环境实战

    第一篇:MySQL 系列(一) 生产标准线上环境安装配置案例及棘手问题解决 第二篇:MySQL 系列(二) 你不知道的数据库操作 第三篇:MySQL 系列(三)你不知道的 视图.触发器.存储过程.函数 ...

  5. Asp.Net Core 项目实战之权限管理系统(4) 依赖注入、仓储、服务的多项目分层实现

    0 Asp.Net Core 项目实战之权限管理系统(0) 无中生有 1 Asp.Net Core 项目实战之权限管理系统(1) 使用AdminLTE搭建前端 2 Asp.Net Core 项目实战之 ...

  6. 给缺少Python项目实战经验的人

    我们在学习过程中最容易犯的一个错误就是:看的多动手的少,特别是对于一些项目的开发学习就更少了! 没有一个完整的项目开发过程,是不会对整个开发流程以及理论知识有牢固的认知的,对于怎样将所学的理论知识应用 ...

  7. asp.net core 实战之 redis 负载均衡和"高可用"实现

    1.概述 分布式系统缓存已经变得不可或缺,本文主要阐述如何实现redis主从复制集群的负载均衡,以及 redis的"高可用"实现, 呵呵双引号的"高可用"并不是 ...

  8. Linux实战教学笔记08:Linux 文件的属性(上半部分)

    第八节 Linux 文件的属性(上半部分) 标签(空格分隔):Linux实战教学笔记 第1章 Linux中的文件 1.1 文件属性概述(ls -lhi) linux里一切皆文件 Linux系统中的文件 ...

  9. Linux实战教学笔记07:Linux系统目录结构介绍

    第七节 Linux系统目录结构介绍 标签(空格分隔):Linux实战教学笔记 第1章 前言 windows目录结构 C:\windows D:\Program Files E:\你懂的\精品 F:\你 ...

随机推荐

  1. 【k8s】使用Terraform一键部署EKS集群

    本文适用范文 使用AWS海外账号 对aws.terraform.k8s有一定的了解 新建一个独立的VPC Terraform简介 terraform是一个云端的资源编排工具,官方对自己的定位:Terr ...

  2. DAS,NAS,SAN,简介

    根据服务器类型分为:封闭系统的存储和开放系统的存储,封闭系统主要指大型机,开放系统指基于Windows.UNIX.Linux等操作系统的服务器;开放系统的存储分为:内置存储和外挂存储;外挂存储根据连接 ...

  3. AnnotationHub, clusterProfiler 进行GO,KEGG注释

    ️ AnnotationHub 目前最新的工具包叫做AnnotationHub,顾名思义,就是注释信息的中装站.通过它,能找到了几乎所有的注释资源.如果没有,你还可以根据已有的数据用它提供的函数进行构 ...

  4. R包 tidyverse 分列

    代码: 1 library(tidyverse) 2 separate(data = df,col=chr_pos,into=c("chr","pos"),se ...

  5. MariaDB—配置允许(别的电脑IP)远程访问方式

    首先配置允许访问的用户,采用授权的方式给用户权限 1 GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'IDENTIFIED BY '123456' WITH GRAN ...

  6. 59. Divide Two Integers

    Divide Two Integers My Submissions QuestionEditorial Solution Total Accepted: 66073 Total Submission ...

  7. Oracle-常用表的查询、增加列、删除列、修改列值功能【增删改查】

    #查看表 select * from `竟企区域数据分析` #在表第一列新增名为"年月"的列alter table `竟企区域数据分析` add column 年月 varchar ...

  8. Python3调用C程序(超详解)

    Python3调用C程序(超详解) Python为什么要调用C? 1.要提高代码的运算速度,C比Python快50倍以上 2.对于C语言里很多传统类库,不想用Python重写,想对从内存到文件接口这样 ...

  9. 基于Kubernetes实现前后端应用的金丝雀发布

    基于Kubernetes实现前后端应用的金丝雀发布 公司的研发管理平台实现了Gitlab+Kubernetes的Devops,在ToB和ToC场景中,由于用户量大,且预发布环境和生产环境或多或少存在差 ...

  10. C++中的排序

    下面网站解释比较好 http://www.cnblogs.com/heyonggang/archive/2013/11/03/3404371.html 1. qsort(C中的函数加上stdlib.h ...