docker 学习笔记

Docker

1. 初识 Docker

快速构建、运行、管理应用的工具

1.1 安装

删除已有的 docker 版本

sudo yum remove docker \docker-client \docker-client-latest \docker-common \docker-latest \docker-latest-logrotate \docker-logrotate \docker-engine

安装所需的软件包

首先安装 yum 工具

yun install -y yum-utils

安装成功后,配置 yum 源(阿里)

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

清华源

https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

安装 Docker

yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

校验安装

docker -v
docker images

images 会出现错误,代表 docker 还没有启动

启动和校验

# 启动 docker
systemctl start docker# 关闭
systemctl stop docker# 重启
systemctl restart docker# 开机自启
systemctl enable docker# 不报错说明安装成功
docker ps

配置镜像加速器

阿里云为例:镜像容器服务 -> 镜像工具 -> 镜像加速器

您可以通过修改daemon配置文件/etc/docker/daemon.json来使用加速器

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{"registry-mirrors": ["https://****.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

2. Docker 使用

2.1 部署 MYSQL

docker run -d --name mysql -p 3307:3306 -e TZ=Asia/Shanghai -e MYSQL_ROOT_PASSWORD=123456 mysql# 3307:3306  映射端口:容器端口
# netstat -ntlp 查看所有端口

问题

# docker 暂停
docker stop mysql# docker 删除
docker rm mysql
# 进入容器# docker exec -it 容器号或名 /bin/bash
docker exec -it b30062adc08c /bin/bash
# 或
docker exec -it mysql /bin/bash# 进入 mysql
mysql -uroot -p# 查看信息
select host,user,plugin,authentication_string from mysql.user;#更新mysql> use mysql;
mysql> alter user 'root'@'%' identified with mysql_native_password by '123456';
mysql> flush privileges;
mysql> select host,user,plugin,authentication_string from mysql.user;

2.2 镜像和容器

当我们利用Docker安装应用时,Docker会自动搜索并下载应用镜像(image)。镜像不仅包含应用本身,还包含应用运行所需要的环境、配置、系统函数库。Docker会 在运行镜像时创建一个隔 离环境,称为容器(container) 。

image-20240111172934762

2.3 常用命令

run 命令
docker run -d \
--name mysql \
-p 3307:3306 \
-e TZ=Asia/Shanghai \
-e MYSQL_ROOT_PASSWORD=123456 \
mysql
  • run:创建并运行
  • –name:容器名称
  • -p:端口映射,docker端口:容器端口
  • -e:envouriment,环境变量,具体看文档

镜像名称结构

  • Repository:TAG,例 mysql:5.7

image-20240111180725331

注意

  • rmi:删除镜像

  • rm:删除容器

  • exec:进入容器内部操作

    docker exec -it <容器名> bash
    

2.4 数据卷

image-20240111182626491

命令说明
docker volume create创建数据卷
docker volume ls查看所有数据卷
docker volume rm删除指定数据卷
docker volume inspect <卷名>查看某个数据卷详情
docker volume prune清除数据卷
# 可以使用 help 命令查看参数详情
docker volume --help
注意
  • 必须在 docker run -v 数据卷名(这里可用绝对路径):容器内目录 时才能挂载映射,已经创建好的容器不可挂载

  • 当创建容器时,如果挂载了数据卷且数据卷不存在,会自动创建

    doucker run -d --name nginx -p 80:80 -v html:/usr/share/nginx/html(需求目录) nginx
    

2.5 自定义镜像

2.5.1 镜像结构

image-20240111191232626

2.5.2 Dockerfile
# 基础镜像
FROM openjdk:11.0-jre-buster
# 设定时区
ENV TZ=Asia/Shanghai
RUN timedatectl set-timezone $TZ
# 拷贝jar包
COPY docker-demo. jar /app.jar
# 入口
ENTRYPOINT ["java","-jar","/app.jar"]
# 构建 docker 
docker build -t myImage:1.0 .
  • -t:镜像起名,格式(镜像名:版本号,默认latest)
  • :是指Dockerfile所在目录,如果就在当前目录就是 . 。

2.6 网络

加入自定义网络的容器才可以通过容器名互相访问

命令说明
docker network create创建网络
docker network ls查看所有网络
docker network rm删除指定网络
docker network prune清除未使用网络
docker network connect使指定容器加入某网络
docker network disconnect脱离某网络
docker network inspect查看网络信息
# 创建
docker network create yuxuan# 查看
docker network ls# mysql容器加入yuxuan网络
docker network connect yuxuan mysql
docker run -d --name mysql -p 3306:3306 --network yuxuan mysql

3. 项目部署

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

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

相关文章

2024/03/15(网络编程·day3)

一、思维导图 二、模拟面试题 什么是IP地址&#xff1f; IP地址是主机在网络中的唯一标识。 分为IPv4和IPv6&#xff0c; IPv4由4字节32位二进制数组成&#xff0c;通常使用点分十进制表示&#xff0c;例如192.168.117.85 &#xff0c;其中每个十进制数的范围都在0-255. IPv6由…

【解读】Synopsys发布2024年开源安全和风险分析报告OSSRA

软件供应链管理中&#xff0c;许可证和安全合规性至关重要。开源组件和库可降低风险&#xff0c;但需了解许可证内容。Synopsys 2023年审计发现&#xff0c;超过一半的代码库存在许可证冲突。MIT许可证是最常用的宽松许可证&#xff0c;但也与其他许可证存在不兼容风险。点此获…

Android SystemServer进程解析

SystemServer进程在android系统中占了举足轻重的地位&#xff0c;系统的所有服务和SystemUI都是由它启动。 一、SystemServer进程主函数流程 1、主函数三部曲 //frameworks/base/services/java/com/android/server/SystemServer.java /** * The main entry point from zy…

51单片机LED8*8点阵显示坤坤跳舞打篮球画面

我们作为一名合格的 ikun&#xff0c;专业的小黑子&#xff0c;这个重要的知识必须学会。 先看效果&#xff1a; 51LED点阵_鸡你太美 这里我们首先要用到延时函数Delay&#xff1a; void Delay(unsigned int xms) {unsigned char i, j;while(xms--){ i 2;j 239;do{while (-…

AWS云上面的k8s统一日志收集(Fluent Bit+EKS+CW)

目标 k8s上面的常见的统一日志方案是EFK&#xff0c;具体如下&#xff1a; E:elasticsearch;F:fluentd;K:kibana 这里我们变成了使用fluentd的AWS替代品Fluent Bit&#xff0c;直接将日志输出到CloudWatch组。不需要E和K了。不过&#xff0c;这样仅仅用于AWS EKS。 步骤 给…

Scala--01--简介、环境搭建

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 1. Scala简介1.1 Scala是什么&#xff1f;官网&#xff1a; [https://scala-lang.org/](https://scala-lang.org/)官方文档&#xff1a; [https://docs.scala-lang.…

工具-百度云盘服务-身份认证

目标 通过百度网盘API的方式去获取网盘中的文件&#xff0c;要实现这的第一步就是需要获取网盘的权限。资料(参考) 如果期望应用访问用户的网盘文件&#xff0c;则需要经过用户同意&#xff0c;这个流程被称为“授权”。百度网盘开放平台基于 OAuth2.0 接入授权。OAuth2.0 是…

Tomcat不识别请求路径中的特殊字符{}

报错内容解决方法1 /opt/tomcat/conf/catalina.properties --> tomcat.util.http.parser.HttpParser.requestTargetAllow|{} 解决方法2 /opt/tomcat/conf/server.xml --> relaxedQueryChars"[]|{}-^&#x60;&quot;<>" relaxedPathChars"[]|{…

分布式CAP理论

CAP理论&#xff1a;一致性&#xff08;Consistency&#xff09;、可用性&#xff08;Availability&#xff09;和分区容错性&#xff08;Partition tolerance&#xff09;。是Eric Brewer在2000年提出的&#xff0c;用于描述分布式系统基本性质的定理。这三个性质在分布式系统…

193基于matlab的基于两轮驱动机器人的自适应轨迹跟踪算法

基于matlab的基于两轮驱动机器人的自适应轨迹跟踪算法&#xff0c;将被跟踪轨迹分段作为跟踪直线处理&#xff0c;相邻离散点之间为一段新的被跟踪轨迹。程序已调通&#xff0c;可直接运行。 193 自适应轨迹跟踪算法 两轮驱动机器人 - 小红书 (xiaohongshu.com)

ftp和fxp哪个传传输快,传输大文件该怎么选择?

在当今数字化时代&#xff0c;大文件传输已成为日常工作和商业活动中不可或缺的一部分。无论是跨国公司的数据交换&#xff0c;还是个人用户的大型媒体文件分享&#xff0c;选择一个高效的传输协议至关重要。FTP和FXP是两种常用的文件传输方式&#xff0c;但在传输大文件时&…

工具类实现导出复杂excel、word

1、加入准备的工具类 package com.ly.cloud.utils.exportUtil;import java.util.Map;public interface TemplateRenderer {Writable render(Map<String, Object> dataSource) throws Throwable;}package com.ly.cloud.utils.exportUtil;import java.util.Map;public int…