Docker入门笔记

news2024/11/14 18:39:55

Docker

文章目录

    • Docker
      • 1. 下载 (centos)
      • 2. 部署 MySQL
      • 3. 常用命令
      • 4. 数据卷
      • 5. 自定义镜像
      • 6. Java 项目部署

1. 下载 (centos)

  1. 卸载旧版
yum remove docker \
    docker-client \
    docker-client-latest \
    docker-common \
    docker-latest \
    docker-latest-logrotate \
    docker-logrotate \
    docker-engine \
    docker-selinux 
  1. 配置 docker 的 yum 库
  • 首先要安装一个yum工具
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
  • 配置Docker的yum源(阿里云源
sudo yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

sudo sed -i 's+download.docker.com+mirrors.aliyun.com/docker-ce+' /etc/yum.repos.d/docker-ce.repo
  • 更新yum,建立缓存
sudo yum makecache fast
  1. 安装 Docker
yum install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
  1. 启动和校验
# 查看当前版本
docker -v
# 启动Docker
systemctl start docker

# 停止Docker
systemctl stop docker

# 重启
systemctl restart docker

# 设置开机自启
systemctl enable docker

# 执行docker ps命令,如果不报错,说明安装启动成功
docker ps
  1. 配置镜像加速

https://cloud.tencent.com/document/product/1207/45596

2. 部署 MySQL

docker run -d \
  --name mysql \
  -p 3306:3306 \
  -e TZ=Asia/Shanghai \
  -e MYSQL_ROOT_PASSWORD=123456 \
  mysql

命令解读

docker run: 创建并运行容器 -d则是让容器以后台进程运行

--name mysql : 给容器起个名字叫mysql,你可以叫别的

-p 3306:3306 : 设置端口映射。

-e TZ=Asia/Shanghai : 配置容器内进程运行时的一些参数(设置环境变量)

  • 格式:-e KEY=VALUE,KEY和VALUE都由容器内进程决定
  • 案例中,TZ =Asia/Shanghai是设置时区;MYSQL_ROOT_PASSWORD=123是设置MySQL默认密码

mysql : 运动的镜像名字

  • 完整写法: REPOSITORY:TAG。(mysql:5.7)
  • 没有指定 tag,默认 latest

3. 常用命令

命令说明
docker pull拉取镜像
docker push推送镜像到DockerRegistry
docker images查看本地镜像
docker rmi删除本地镜像
docker run创建并运行容器(不能重复创建)
docker stop停止指定容器
docker start启动指定容器
docker restart重新启动容器
docker rm删除指定容器
docker ps查看容器
docker logs查看容器运行日志
docker exec进入容器
docker save保存镜像到本地压缩文件
docker load加载本地压缩文件到镜像
docker inspect查看容器详细信息

docker rm : 删除一个或多个 容器

docker rmi : 删除一个或多个 镜像

# 拉取最新版本 nginx 镜像
docker pull nginx
# 保存 nginx 镜像
docker save -o image/nginx.tar nginx:latest

docker rmi nginx:latest 
# 导入 nginx 镜像
docker load -i image/nginx.tar 

部署 nginx

docker run -d \
  --name nginx \
  -p 80:80 \
  nginx
# 停止容器
docker stop nginx
# 运行容器
docker start nginx

查看日志

docker logs nginx
# 持续查看日志
docker logs -f nginx

进入容器内部

docker exec -it nginx bash

docker exec -it mysql mysql -uroot -p123456

命令别名:

alias dps='docker ps --format "table {{.ID}}\t{{.Image}}\t{{.Ports}}\t{{.Status}}\t{{.Names}}"'
alias dis='docker images'

4. 数据卷

数据卷(volume)是一个虚拟目录,是容器内目录宿主机****目录之间映射的桥梁。

以Nginx为例,我们知道Nginx中有两个关键的目录:

  • html:放置一些静态资源
  • conf:放置配置文件

如果我们要让Nginx代理我们的静态资源,最好是放到html目录;如果我们要修改Nginx的配置,最好是找到conf下的nginx.conf文件。
在这里插入图片描述

docker volume create创建数据卷
docker volume ls查看所有数据卷
docker volume rm删除指定数据卷
docker volume inspect查看某个数据卷的详情
docker volume prune清除数据卷
docker run -d --name nginx -p 80:80 -v html:/usr/share/nginx/html nginx


docker volume ls

docker volume inspect html 

# 查看容器数据卷挂载
docker inspect nginx

基于宿主机目录实现 MySQL 数据目录、配置文件、初始化脚本的挂载

  • 挂载/root/mysql/data到容器内的/var/lib/mysql目录
  • 挂载/root/mysql/init到容器内的/docker-entrypoint-initdb.d目录(初始化的SQL脚本目录)
  • 挂载/root/mysql/conf到容器内的/etc/mysql/conf.d目录(这个是MySQL配置文件目录)
docker run -d \
  --name mysql \
   --privileged=true \
  -p 3306:3306 \
  -e TZ=Asia/Shanghai \
  -e MYSQL_ROOT_PASSWORD=123456 \
  -v /root/mysql/data:/var/lib/mysql \
  -v /root/mysql/init:/docker-entrypoint-initdb.d \
  -v /root/mysql/conf:/etc/mysql/conf.d \
  mysql:8.0

cnf文件

[client]
default_character_set=utf8mb4
[mysql]
default_character_set=utf8mb4
[mysqld]
character_set_server=utf8mb4
collation_server=utf8mb4_unicode_ci
init_connect='SET NAMES utf8mb4'

5. 自定义镜像

在这里插入图片描述

# 基础镜像
FROM openjdk:11.0-jre-buster
# 设定时区
ENV TZ=Asia/Shanghai
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
# 拷贝jar包
COPY docker-demo.jar /app.jar
# 入口
ENTRYPOINT ["java", "-jar", "/app.jar"]

6. Java 项目部署

redis 部署

https://www.cnblogs.com/lzp110119/p/17869310.html

docker run \
  --restart=always \
  --log-opt max-size=100m \
  --log-opt max-file=2 \
  -p 6379:6379 \
  --name redis \
  -v /root/redis/conf/redis.conf:/etc/redis/redis.conf \
  -v /root/redis/data:/data \
  -d redis \
  redis-server /etc/redis/redis.conf \
  --appendonly yes \
  --requirepass 123456

mysql

docker run -d \
  --name mysql \
  -p 3306:3306 \
  -e TZ=Asia/Shanghai \
  -e MYSQL_ROOT_PASSWORD=123456 \
  -v /root/mysql/data:/var/lib/mysql \
  -v /root/mysql/init:/docker-entrypoint-initdb.d \
  -v /root/mysql/conf:/etc/mysql/conf.d \
  mysql
docker run -e MYSQL_ROOT_PASSWORD=123456 mysql

网络互联

docker network create
docker network connect mynet redis
docker network connect mynet mysql
docker build -t proname .
docker run -d --name starry -p 8080:8080 --network mynet starry

nginx

docker run -d \
  --name nginx \
  -p 80:80 \
  -v /root/nginx/html:/usr/share/nginx/html \
  -v /root/nginx/nginx.conf:/etc/nginx/nginx.conf \
  --network mynet \
  nginx

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

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

相关文章

个人旅游网(3)——功能详解——旅游路线功能

文章目录 一、旅游路线分类功能1.1、接口详解1.1.1、findAll 二、路线分类下的旅游路线功能2.2、接口详解2.2.1、findRouteListByCid 三、点击单条旅游路线查看其详情功能3.1、接口详解3.1.1、findRouteListByRid 四、分页功能4.1、导入依赖4.2、配置项的配置4.3、实现分页 一、…

Zotero tags(action and tags for zotero)怎么使用

先在下面的网址安装action and tags for zotero: https://github.com/windingwind/zotero-actions-tags 视频讲解: Zotero Tag -> Actions and Tags for Zotero - 远不止标签管理!_哔哩哔哩_bilibili 使用方法: 找到一些表情…

Linux驱动(四):Linux2.6字符设备驱动及GPIO子系统

目录 前言一、Linux2.6字符设备驱动的编写1.设备号2.注册设备号3.释放设备号4.核心结构体5.设备相关的 API 函数6.自动创建设备节点 二、GPIO 子系统1.申请所需gpio口资源2.释放gpio口资源3. 配置 gpio 口的工作模式4.获取gpio口的电平状态5.设置 gpio 的电平状态 三、目标实现…

路由引入(ospf+rip)

1.搭建拓扑图 2.配置接口ip地址

IO进程(线程篇)

知识点链接 https://www.yuque.com/aihenaobaijin/camuoq/lscmvf6z1arklau4?singleDoc# 《IO进程》 建议先学习知识点,再进行下面的练习 线程 概念 线程是一个轻量级的进程,为了提高系统的性能引入线程 线程和进程是参与统一的调度 在同一个进程中可…

【RSA】简单说说什么是RSA非对称加密

希望文章能给到你启发和灵感~ 如果觉得文章对你有帮助的话,点赞 关注 收藏 支持一下博主吧~ 阅读指南 开篇说明一、基础环境说明1.1 硬件环境1.2 软件环境 二、什么是非对称加密2.1 常见的非对称加密有哪些?2.2 哪些场景适合使用…

渗透测试靶机---- DC系列 DC-4

渗透测试靶机---- DC系列 DC-4 开启靶机,登录页面,平平无奇 扫描ip 端口,服务等信息 访问80 登录窗!!! 这里说明了admin信息,那么就直接爆破这个admin的密码 密码:happy 登录成功 在…

64位Office API声明语句第001讲

跟我学VBA,我这里专注VBA, 授人以渔。我98年开始,从源码接触VBA已经20余年了,随着年龄的增长,越来越觉得有必要把这项技能传递给需要这项技术的职场人员。希望职场和数据打交道的朋友,都来学习VBA,利用VBA,起码可以提高…

华为云征文|使用sysbench对Mysql应用加速测评

文章目录 ❀前言❀测试环境准备❀测试工具选择❀测试工具安装❀mysql配置❀未开启Mysql加速测试❀开启Mysql加速测试❀总结 ❀前言 大家好,我是早九晚十二。 昨天有梳理一篇关于华为云最新推出的云服务器产品Flexus云服务器X。当时有说过,这次的华为云F…

0.3 学习Stm32经历过的磨难

文章目录 用库函数传参 能否按位或STM32库函数XXX_GetFlagStatus和XXX_GetITStatus的区别 用库函数传参 能否按位或 答案是看清况,而不是一股脑的写!(血泪的经验啊) 可行的情况: //如gpio初始化结构体中的gpiopin参…

坐牢第三十四天(c++)

一.作业 1.栈的手写 #include <iostream> using namespace std; // 封装一个栈 class stcak { private:int *data; //int max_size; // 最大容量int top; // 下标 public:// 无参构造函数stcak();// 有参构造函数stcak(int size);// 拷贝构造函数stcak(const s…

Linux调试器-gdb的使用

&#x1f308;个人主页&#xff1a;Yui_ &#x1f308;Linux专栏&#xff1a;Linux &#x1f308;C语言笔记专栏&#xff1a;C语言笔记 &#x1f308;数据结构专栏&#xff1a;数据结构 &#x1f308;C专栏&#xff1a;C 1.前置知识 程序的发布方式一般有两种&#xff0c;deb…

sql-labs51-55通关攻略

第51关 一.查询数据库 1and updatexml(1,concat(0x7e,(select database()),0x7e),1)-- 二.查表 and updatexml(1,concat(0x7e,(select group_concat(table_name) from information_schema.tables where table_schemadatabase() ),0x7e),1) -- 三.查列 and updatexml(1,concat…

都2024年了你还缺客源?十分钟教你如何获取!

你是否还在为如何找到精准的客源而烦恼&#xff1f;别担心&#xff0c;今天我们就来分享一些客源采集方法&#xff0c;让你十分钟内掌握技巧&#xff0c;轻松获取全国各地各行各业的客源。 精准采集客源 1. 拓客工具 专业的拓客工具可以帮助你精准地采集到全国各地的客源信息。…

【SPSS】基于因子分析法对葡萄酒数据进行分析

&#x1f935;‍♂️ 个人主页&#xff1a;艾派森的个人主页 ✍&#x1f3fb;作者简介&#xff1a;Python学习者 &#x1f40b; 希望大家多多支持&#xff0c;我们一起进步&#xff01;&#x1f604; 如果文章对你有帮助的话&#xff0c; 欢迎评论 &#x1f4ac;点赞&#x1f4…

使用合同比对工具时,有哪些常见问题和解决方案?

在使用合同比对工具的过程中&#xff0c;企业可能会面临一系列挑战&#xff0c;这些问题可能会影响工具的效率和效果。以下是一些常见的问题&#xff1a; 1.兼容性问题&#xff1a;在不同的工作环境中&#xff0c;合同文档可能以不同的格式存在&#xff0c;如PDF、Word、Excel…

手撕Python之散列类型

1.字典 思考&#xff1a;如果有多个数据&#xff0c;例如&#xff1a;“凯子”&#xff0c;“男”&#xff0c;19&#xff0c;如何快速存储这些数据 多数我们是通过列表进行存储的 li[凯子,男,19] 在定义完这个列表之后我们如何来找到数据凯子呢&#xff1f; 我们可以通过…

数据结构基本知识

一、什么是数据结构 1.1、组织存储数据 ---------》内存&#xff08;存储&#xff09; 1.2、研究目的 如何存储数据&#xff08;变量&#xff0c;数组....)程序数据结构算法 1.3、常见保存数据的方法 数组&#xff1a;保存自己的数据指针&#xff1a;是间接访问已经存在的…

【笔试练习】深信服校园招聘c/c 软件开发H卷

题目链接 一、填空题 如图所示&#xff0c;平面上有两条平行的线段&#xff0c;上面的线段有A0~A3 4个点&#xff0c;下面的线段有B0到B5 6个点&#xff0c;现在需要把所有的点都连接起来&#xff0c;有如下约束&#xff1a; 每个端点&#xff0c;都至少有一条到另一平行线上端…

仿微信聊天系统开发功能架构分析

仿微信聊天系统是一种旨在模仿微信核心聊天功能的应用或软件&#xff0c;它允许用户通过即时通讯进行交流。该系统通常由客户端、服务器端和数据库组成&#xff0c;以支持用户间的实时消息传送。以下是对仿微信聊天系统的一个概述&#xff1a; 一、系统架构 客户端 用户界面&…