1、快速上手Docker:入门指南

文章目录

  • Linux中安装docker
  • 防火墙端口配置
  • web项目需要的环境
    • 安装yarn
    • 安装nodejs
    • 安装脚手架并准备项目
  • 构建镜像
  • 启动镜像
  • 查看日志
  • 管理镜像
    • 推送镜像
  • 发布项目
    • 准备服务器环境
    • 部署项目:
  • PS:扩展一点小知识


这篇文章只是docker入门的第一个Docker项目,简单介绍一下大概流程,这一篇理解之后,接下来就是“趁热打铁,Docker实战”。

Linux中安装docker

这里就介绍Linux中的安装,以CentOS7为例,Windows、Mac、Ubuntu等系统,大同小异,自行搜索引擎查询安装。
1、配置yum源

yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

如果是一个空白的Linux系统,可能直接运行会出现报错。

例如:指定docker源报错

-bash: yum-config-manager: command not found

这个是因为系统默认没有安装这个命令,这个命令在 yum-utils 包里,可以通过命令 yum -y install yum-utils 安装就可以了

如果需要使用到这个命令那么先要安装插件(安装需要的软件包, yum-utils 提供 yum-config-manager 功能,另外两个是 devicemapper 驱动依赖的)

yum install -y docker-ce yum-utils device-mapper-persistent-data lvm2

使用包管理器安装docker也可以的哦

sudo apt-get update
sudo apt-get install docker-ce

2、启动docker

systemctl start docker

3、设置系统自启动

systemctl enable docker

4、配置中科大镜像

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{"registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

如果要配置多个镜像就用逗号隔开,配置多个地址。
例:
"registry-mirrors": ["https://docker.mirrors.ustc.edu.cn","https://1vxxxxxx.mirror.aliyuncs.com"]

阿里云的镜像获取要到阿里云网站获取

路径:容器镜像服务 -> 镜像工具 -> 镜像加速器
地址:https://cr.console.aliyun.com/cn-chengdu/instances/mirrors

防火墙端口配置

firewall-cmd --zone=public --add-port=3000/tcp --permanent
firewall-cmd --reload

当然也可以选择关闭防火墙

web项目需要的环境

安装yarn

yum install wget
sudo wget https://dl.yarnpkg.com/rpm/yarn.repo -O /etc/yum.repos.d/yarn.repo

安装nodejs

直接从yum中安装nodejs是找不到的,因此采用下面我的方法,可以成功安装。

# 从EPEL存储库安装Node
yum update
sudo yum install epel-release -y
sudo yum install nodejs -y
node --version# 访问npm以管理其Node包。
yum install npm -y

安装脚手架并准备项目

可以是vue、react等,我此处选择的是react

# 全局安装项目脚手架
npm install -g create-react-app
# 查看是否安装成功
create-react-app -v

创建项目(这个过程较慢,耐心等待)

# 执行命令,创建第一个项目
create-react-app my-react-app
cd my-react-app# (可选操作)如果是直接复制的代码,那么要安装一下
# yarn install -g react-scripts
yarn install 或者 npm install# 启动项目
yarn start# 访问
http://localhost:3000# 打包
yarn build

构建镜像

在有dockerfile文件的路径下执行以下命令。

# 将镜像命名为lx-test,最后的 . 表示是基于当前的dockerfile文件
docker build -t lx-test .# 查看自己构建的镜像
docker images | grep lx-test

Dockerfile的文件写法,自行查询,简洁明了。后面也会补充 😆,客官稍等片刻

启动镜像

# 启动并设置端口为8888
docker run -d -p 8888:80 lx-test1# 起个别名
docker run -d -p 8888:80  --name first-project  lx-test1# 访问:http://ip:8888

查看日志

docker logs first-project(镜像名称,可以docker ps查看)
# 或者使用容器id
docker logs <container_id># 查看实时日志
docker logs -f first-project

管理镜像

在推送镜像之前,要先获取nginx镜像

docker pull nginx 

推送镜像

# 推送镜像
docker push lx-test1
Using default tag: latest
The push refers to repository [docker.io/library/lx-test1]
53b10f4ca8e6: Preparing
...
# 直接推送会遇到如下报错,这是为什么呢??
denied: requested access to the resource is denied

原因是这里有一个限制条件,在构建本地镜像时,则必须在原来的文件前面加上Docker Hub中的username,本例子中使用的是danielllx

原因是要注册自己的账号,并且登录。https://hub.docker.com/

在服务器登录

[root@localhost my-react-app]# docker login
Log in with your Docker ID or email address to push and pull images from Docker Hub. If you don't have a Docker ID, head over to https://hub.docker.com/ to create one.
You can log in with your password or a Personal Access Token (PAT). Using a limited-scope PAT grants better security and is required for organizations using SSO. Learn more at https://docs.docker.com/go/access-tokens/Username: danielllx
Password: 自己的密码
WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-storeLogin Succeeded

登录成功后才可进行后面的上传,发布。

理解其规则后,再重新构建一个重新进行上传

docker build -t lx-test4 . 

可套用的公式其实是:

docker tag 需要上传的镜像[:TAG] [docker-hub自己账号名]/镜像名[:TAG]

查看自己新创建的tag。打包上传

docker push [docker-hub自己账号名]/镜像名[:TAG]

在这里插入图片描述

发布项目

准备服务器环境

使用除发布镜像的服务器去测试
连接方式:

  • mobaxterm或者xshell工具直接输入IP
  • mac使用 ssh root@IP 方式登录

部署项目:

1、要运行docker,就要确保服务器安装了docker,使用docker -v查看
2、获取自己刚刚上传的镜像:docker pull danielllx/lx-test4
3、如果镜像未发生改变,就不会重复拉取
4、运行容器

docker search lx-test4(刚刚发布的镜像名称)
docker run -d -p 8888:80 --name react-docker-demo danielllx/lx-test4
  • -d:表示后台运行
  • -p:表示端口映射
  • --name:设置别名

5、启动之后进行验证,确定容器是否正常运行

docker ps

6、进行服务器验证:容器运行正常,并不代表部署的服务式正常的

curl -v -i localhost:8888

返回200,说明服务部署就绪,可以正常访问

7、线上验证:ip地址+端口

PS:扩展一点小知识

如果您当初处于公司网络禁止连接外部网络环境的一个状态,那么你安装一些软件或者插件的时候,就需要下载离线的安装包,接下来就是教你怎么下载离线安装包(包含但不限于rpm包)到指定的目录下:

例:
    要在虚拟机本地下载 git-core 和 perl-Git 的 RPM 包,你可以使用 yumdownloader 工具来实现。在终端中执行以下命令:

yum install yum-utils   # 如果未安装 yum-utils,需先安装该工具
yumdownloader --resolve --destdir=/data/git_rpm2/ git-core perl-Git

多个依赖之间用“空格”隔开

这将会下载 git-core 和 perl-Git 及其依赖项的 RPM 包到 /data/git_rpm2/ 目录下。

接下来提供几个常用的下载的位置

  • Jenkins插件下载,下载的都是hpi文件
  • 清华大学开源软件镜像站

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/796164.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

STM32使用HAL库获取GPS模块HT1818Z3G5L信息(方法1)

1、写在最前 先了解一下GPRMC的格式 格 式&#xff1a; GPRMC,024813.640,A,3158.4608,N,11848.3737,E,10.05,324.27,150706,A*50 说 明&#xff1a; 字段 0&#xff1a;$GPRMC&#xff0c;语句ID&#xff0c;表明该语句为Recommended Minimum Specific GPS/TRANSIT Data&…

数据结构|排序总结(1)|直接插入排序

排序分类 插入排序&#xff1a;直接插入排序&#xff0c;希尔排序 选择排序&#xff1a;选择排序&#xff0c;堆排序 交换排序&#xff1a;冒泡排序&#xff0c;快速排序 归并排序 插入排序 直接插入排序 相当于摸牌&#xff0c;例如我们现在手上有{2&#xff0c;4&#xff0…

AcWing 2099. 找到和最大的长度为 K 的子序列

解题思路 用数组来保存数字的出现次数。hash和set不能保存相同的键值&#xff0c;这种情况下只能用数组。 相关代码 class Solution {public int[] maxSubsequence(int[] nums, int k) {int a[] new int[nums.length];for(int i0;i<nums.length;i) a[i] nums[i];Arrays…

C/C++ 查泄漏得一些方法

在 C/C 之中内存泄漏一直是个老大难问题&#xff0c;但索性用于辅助定位查找得解决方案也不少&#xff0c;虽然没那么详细&#xff0c;但总比没有要好的多。 有一些是用三方工具来查得&#xff0c;但这个需要编译debug&#xff0c;带上符号信息得版本才可以&#xff0c;就很麻烦…

volatile 能一个非原子操作变成原子操作吗

该文章专注于面试,面试只要回答关键点即可,不需要对框架有非常深入的回答,如果你想应付面试,是足够了,抓住关键点 面试官:volatile 能一个非原子操作变成原子操作吗 volatile 关键字在 Java 中主要用于确保多线程环境下的可见性和禁止指令重排序,但它并不能使一个非原…

碘浊度法与红外相机联用测定食品中维生素C

&#x1f31e;欢迎来到看论文的世界 &#x1f308;博客主页&#xff1a;卿云阁 &#x1f48c;欢迎关注&#x1f389;点赞&#x1f44d;收藏⭐️留言&#x1f4dd; &#x1f31f;本文由卿云阁原创&#xff01; &#x1f4c6;首发时间&#xff1a;&#x1f339;2024年4月6日&…

从新手到专家:精通MacOS上的Homebrew安装

I. 前言 在介绍如何精通MacOS上的Homebrew安装之前&#xff0c;首先需要了解什么是Homebrew以及为什么要使用它。 1. Homebrew是什么&#xff1f; Homebrew是一款开源的软件包管理工具&#xff0c;可以让用户轻松地安装、升级和卸载各种软件包。与其他的软件包管理器相比&am…

PostCss:详尽指南之安装和使用

引言 在现代前端开发中&#xff0c;CSS预处理器如Sass、Less等已经成为提升开发效率、增强代码可维护性的重要工具。然而&#xff0c;随着Web技术的发展&#xff0c;CSS的功能也在不断扩展&#xff0c;一些新的CSS语法&#xff08;如变量、自定义属性、CSS Grid等&#xff09;以…

5.112 BCC工具之ext4slower.py解读

一,工具简介 ext4slower可以显示慢于阈值的ext4读取、写入、打开和fsync操作。 该工具追踪常见的ext4文件操作:读取、写入、打开和同步。它统计在这些操作中花费的时间,并打印超过阈值的每个操作的详细信息。 默认情况下,使用的最小毫秒阈值为10。 二,代码示例 #!/us…

霍兰德职业兴趣测试:发掘你的工作激情与天赋(包含开源免费的API接口)

霍兰德倾向测验的原理 霍兰德职业倾向测验&#xff0c;它是美国著名职业指导专家J&#xff0e;霍兰德&#xff08;HOLLAND&#xff09;编制的&#xff0c;他的职业选择理论把职业分为六种不同类型&#xff0c;即现实型、研究型、艺术型、社会型、企业型、常规型。霍兰德认为&a…

数据库的简单查询

一、检索一列或多列1.检索单独一列 select 列名 from 表名; select order_num from orders; 2.检索多列数据 select 列 1&#xff0c;列 2... from 表名; select order_num,order_date from orders; select order_date,order_num from orders; 3.查询所有字段 select * from…

正排索引 vs 倒排索引 - 搜索引擎具体原理

阅读导航 一、正排索引1. 概念2. 实例 二、倒排索引1. 概念2. 实例 三、正排 VS 倒排1. 正排索引优缺点2. 倒排索引优缺点3. 应用场景 三、搜索引擎原理1. 宏观原理2. 具体原理 一、正排索引 1. 概念 正排索引是一种索引机制&#xff0c;它将文档或数据记录按照某种特定的顺序…

security如何不拦截websocket

只要添加一个关键配置就行 //忽略websocket拦截Overridepublic void configure(WebSecurity webSecurity){webSecurity.ignoring().antMatchers("/**");} 全部代码我放着了 package com.oddfar.campus.framework.config;import com.oddfar.campus.framework.secur…

016——DHT11驱动开发(基于I.MX6uLL)

目录 一、 模块介绍 1.1 简介 1.2 电路描述 1.3 通信协议 二、 驱动程序 三、 应用程序 四、 上机实验 一、 模块介绍 1.1 简介 DHT11 是一款可测量温度和湿度的传感器。比如市面上一些空气加湿器&#xff0c;会测量空气中湿度&#xff0c;再根据测量结果决定是否继续加…

Cortex-M7 内存映射模型

1 前言 如图1所示&#xff0c; Cortex-M7最大支持4GB的内存寻址&#xff0c;并对内存映射(memory map)做了初步的规定&#xff0c;将整个内存空间划分为了多个内存区域(region)。每个内存区域有着既定的内存类型(memory type)和内存属性(memory attribute)&#xff0c;这两者决…

numpy学习笔记,不定期更新

numpy类型入门 import numpy库后&#xff0c;通过numpy参数操作示例 import numpy as np# 创建ndarray&#xff0c;通过list创建 a np.array([1, 2, 3]) print(a)[1 2 3]# 通过元组创建ndarray&#xff0c;并指定数据类型为float (此处是python的float类型&#xff0c;不是n…

从石膏像到真人:素描的进步之路

从石膏像绘画到真人绘画&#xff1a;素描的进步之路怎么走 从石膏像绘画到真人绘画&#xff0c;素描的进步之路可以通过以下几个步骤来实现&#xff1a; 掌握基本技能&#xff1a;在开始真人绘画之前&#xff0c;需要先掌握基本的素描技能&#xff0c;包括构图、明暗关系、观察…

物理层习题及其相关知识(谁看谁不迷糊呢)

1. 对于带宽为50k Hz的信道&#xff0c;若有4种不同的物理状态来表示数据&#xff0c;信噪比为20dB 。&#xff08;1&#xff09; 按奈奎斯特定理&#xff0c;信道的最大传输数据速率是多少&#xff1f;&#xff08;2&#xff09; 按香农定理&#xff0c;信道的最大传输数据速度…

PSI相关存档

https://anquan.baidu.com/upload/ue/file/20190814/1565763561975581.pdf 关于PSI的研究综述_psi综述-CSDN博客 https://zhuanlan.zhihu.com/p/532761749 https://zhuanlan.zhihu.com/p/407290294 隐私集合求交(Private Set Intersection)问题综述 - 知乎 (zhihu.com) Pr…

基于Springboot+Vue实现前后端分离酒店管理系统

一、&#x1f680;选题背景介绍 &#x1f4da;推荐理由&#xff1a; 近几年来&#xff0c;随着各行各业计算机智能化管理的转型&#xff0c;以及人们经济实力的提升&#xff0c;人们对于酒店住宿的需求不断的提升&#xff0c;用户的增多导致酒店管理信息的不断增多&#xff0c;…