架构师之路--docker命令实践整理

在这里插入图片描述
安装docker

sudo yum remove docker  docker-client   docker-client-latest     docker-common  docker-latest docker-latest-logrotate docker-logrotate docker-engine
sudo yum install -y yum-utils
sudo yum-config-manager --add-repo     http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum makecache fast
sudo yum install docker-ce docker-ce-cli containerd.io

修改docker镜像源

  vi /etc/docker/daemon.json{"registry-mirrors":["http://hub-mirror.c.163.com"]}systemctl restart  docker.service

修改docker镜像源2

vi /etc/sysconfig/docker
OPTIONS='--selinux-enabled--log-driver=journald --registry mirror=https://docker.mirrors.ustc.edu.cn' 
systemctl restart  docker.service

启动docker

sudo systemctl start docker

查看镜像

docker images

创建镜像
根据dockerfile创建镜像

 docker build -t dwbtest:1.0.1  -f /path/Dockerfile .

-t 命名 repository标签
-f 指定Dockerfile /path/Dockerfile
在这里插入图片描述

运行的容器生成镜像

 docker commit  容器id centosdwb:1.5.1

删除镜像

docker rmi repositoryname/imageid

删除镜像前需要先删除镜像的容器

docker rm id 

运行镜像
存在容器内systemctl不能用的问题

docker run -d -i -t -p 8080:8080 1ecffb481e56 /bin/bash

可以解决容器内 systemctl不能用的问题

 docker run -itd   -p 8080:8080 --privileged 1ecffb481e56 /usr/sbin/init

如果少/bin/bash,Docker会生成一个Container但是马上就停止了
进出容器
exit离开容器,容器正常运行

docker exec -it 9da /bin/bash

拷贝文件

docker cp autostart.sh d6:/opt/autostart.sh

生成镜像

docker commit  71 centosdwb:1.7

停止重启容器

docker stop 容器ID
docker restart 容器ID

自启动

docker update --restart=always 容器名或容器ID

docker日志
最近30分钟
docker logs --since 30m 3193
指定时间后
docker logs --since=“2023-05-23” --tail=100 containerID
最后100条
docker logs --tail=100 containerID
指定时间段
docker logs --since=“2023-05-23” --until=“2023-05-26” containerID
过滤日志
docker logs --tail=100 containerID | grep -10 “test”
输出日志
docker logs --tail=100 containerID | grep -C 10 “test” >> log.txt
运行tomcat
在这里插入图片描述

docker pull tomcat

Dockerfile

FROM tomcat:latest
MAINTAINER dwb "dwb@qq.com"
WORKDIR /usr/local
RUN rm -rf /usr/local/tomcat/webapps/*
ADD enterprise.war /usr/local/tomcat/webapps/ROOT.war
ENV TZ=Asia/Shanghai
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
docker build -t dwb/tomcat .
docker run -d -p 8080:8080 dwb/tomcat

启动自己的centos命令

docker run -itd   -p 1022:22 -p 80:80 -p 3306:3306 -p 3307:3307 -p 6379:6379 -p 7500:7500  --privileged=true  f1bf8748e4b9 /usr/sbin/init  --restart=always  --name centosdwb

修改yum镜像源

sed -i 's/mirrorlist/#mirrorlist/g' /etc/yum.repos.d/CentOS-*
sed -i 's|#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g' /etc/yum.repos.d/CentOS-*
yum makecache
yum update -y

安装ifconfig
第二种
没有安装

yum install net-tools.x86_64
yum install ifconfig

第一种
没有配置

 ls /sbin/ifconfigvim /etc/profileexport PATH=$PATH:/usr/sbinsource /etc/profile

开启ssh

yum install -y initscripts openssh-server openssl openssl-devel
service sshd restart
vim /etc/ssh/sshd_config修改为PermitRootLogin yes
echo 123456 | passwd --stdin root

Docker Compose 安装使用

sudo curl -L https://github.com/docker/compose/releases/download/1.25.5/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
docker-compose --version

运行

 docker-compose -f docker-compose.yml up -d

文件传输
获取容器全路径

docker inspect -f '{{.Id}}' 9d26ae1ea83f
9d26ae1ea83f6f0835455c03ee780e2964a77eba5cd0d32d1ffb90cc40a99994

复制容器文件到外面

docker cp 7cbd5eef3e67696ba3777af865bf0971c0aabb108d3a12ab18e908bea603e667:/etc/my.cnf /root/my.cnf

复制外面文件到容器

docker cp  /root/my.cnf 7cbd5eef3e67696ba3777af865bf0971c0aabb108d3a12ab18e908bea603e667:/etc/my.cnf

docker-mysql
拉取镜像

docker pull mysql

启动

docker run -itd --name dwbmysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql --lower-case-table-names=1

mysql 远程登录设置

mysql -uroot -p 123456
show master status;
SET sql_mode=(SELECT REPLACE(@@sql_mode,'ONLY_FULL_GROUP_BY',''));
alter user 'root'@'%' identified with mysql_native_password by '123456';
alter user 'root'@'localhost' identified with mysql_native_password by '123456';
create user dwb identified by  '123456';
grant all privileges on *.* to 'root'@'%' with grant option;
flush privileges;

docker-redis

docker pull redis
创建目录| mkdir /docker| mkdir /docker/redis| mkdir /docker/redis/data| touch /docker/redis/redis.conf| touch /docker/redis/redis.bash
vim /docker/redis/redis.conf
    | # Redis配置文件| # Redis默认不是以守护进程的方式运行,可以通过该配置项修改,使用yes启用守护进程| daemonize yes| # 指定Redis监听端口,默认端口为6379| port 6379| # 绑定的主机地址,不要绑定容器的本地127.0.0.1地址,因为这样就无法在容器外部访问| # bind 0.0.0.0| # 持久化| appendonly yes| notify-keyspace-events Ex| protected-mode no

编辑docker启动脚本

vi redis.sh
docker run -p 6379:6379 --name redis -v /docker/redis/redis.conf:/etc/redis/redis.conf -v /docker/redis/data:/data -d redis redis-server /etc/redis/redis.conf 
    说明| docker run redis # 从redis镜像运行容器| -p 6379:6379 # 映射本地6379端口到容器6379端口,前为本地端口| --name redis # 设置容器名称为redis,方便以后使用docker ps进行管理| -v /docker/redis/redis.conf:/etc/redis/redis.conf # 关联本地/docker/redis/redis.conf文件到容器中/etc/redis/redis.conf,同样,前为本地| -v /docker/redis/data:/data # 关联本地/docker/redis/data到容器内/data目录,此为存放redis数据的目录,为方便以后升级redis,而数据可以留存| -d # 后台启动,使用此方式启动,则redis.conf中daemonize必须设置为no,否则会无法启动| redis-server /etc/redis/redis.conf # 在容器内启动redis-server的命令,主要是为了加载配置| 

赋权

sudo chmod 777 redis.sh
启动redis.sh| # 查看是否已启动| docker ps| # 如果无法启动或者docker ps中无对应内容,将bash中命令复制出来,删除-d参数启动,查看报错信息| # 使用redis-cli或者rdm访问 localhost:6379| # 如需访问容器,可使用| docker exec -it redis bash| # 或直接使用redis-cli访问容器内redis| docker exec -it redis redis-cli| 

阿里云杭州镜像库
https://cr.console.aliyun.com/repository/cn-hangzhou

登录

docker login --username=*** registry.cn-hangzhou.aliyuncs.com

拉取镜像

docker pull registry.cn-hangzhou.aliyuncs.com/ *** / ***:centos2.0

标签新名称

docker tag 83bcc6484c3d registry.cn-hangzhou.aliyuncs.com/*** /*** :centos2.0

推送远程

docker push registry.cn-hangzhou.aliyuncs.com/*** /*** :centos2.0

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

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

相关文章

开源博客项目Blog .NET Core源码学习(12:App.Application项目结构分析)

开源博客项目Blog的App.Application项目主要定义网站页面使用的数据类,同时定义各类数据的增删改查操作接口和实现类。App.Application项目未安装Nuget包,主要引用App.Core项目的类型。   App.Application项目的顶层文件夹如下图所示,下面逐…

巨控GRM110系列:短距离内的无线通讯模块

标签: #巨控GRM110 #无线通讯 #ROLA技术 #工业自动化 #远程数据采集 在工业自动化和智能制造的领域中,数据的准确传输是实现高效生产的关键。随着技术的不断进步,无线通讯技术已成为破解远距离数据传输难题的利器。今天,我们将聚焦于一款革命…

U盘未格式化?数据恢复大揭秘!

在日常办公和生活中,U盘已成为我们不可或缺的数据存储工具。然而,有时我们会遇到这样一个令人头疼的问题:原本正常使用的U盘,突然提示“未格式化”,里面的文件似乎都消失不见了。面对这种情况,很多人会感到…

35岁,程序员职业生涯的新起点

近年来,关于程序员职业生涯的讨论日益热烈,而“35岁被认为是程序员职业生涯的分水岭”更是成为了一个备受关注的话题。在这篇文章中,我们将探讨这一说法的合理性,并从事实和数据的角度来分析,为什么35岁并非程序员职业…

线程池-1:线程池是如何复用线程的?

这段代码实现了一个简单的线程池 SimpleThreadPool。主要包括以下几个关键部分: 构造函数:初始化最大线程数 maxPoolSize、任务队列 taskQueue、当前线程数 currentPoolSize,以及锁 lock 和条件 taskAvailable。 submit(Runnable task) 方法…

PSINS初学指导

2024-3-27/Evand/Ver1 因为惯导解算设计的数学公式很多,在编程时如果一步一步自己编,非常耗时耗力,所以在进行上层设计时,借助工具箱完成底层的复杂计算是很有必要的。另一方面,也能利用工具箱进行惯导解算方面的学习…

FPGA时钟资源详解(2)——Clock-Capable Inputs

FPGA时钟系列文章总览:FPGA原理与结构(14)——时钟资源https://ztzhang.blog.csdn.net/article/details/132307564 目录 一、概述 1.1 为什么使用CC 1.2 如何使用CC 二、Clock-Capable Inputs 2.1 SRCC 2.2 MRCC 2.3 其他用途 2.3.1…

WIFI驱动移植实验:WIFI驱动加载测试

一. 简介 前面文章学习了向kernel内核源码中添加 trl8188驱动代码,配置内核以支持 WIFI设备,使能WIFI功能。文章地址如下: WIFI驱动移植实验:删除Linux内核自带的 RTL8192CU 驱动-CSDN博客 WIFI驱动移植实验:将 rtl…

LeetCode 135. 分发糖果

n 个孩子站成一排。给你一个整数数组 ratings 表示每个孩子的评分。 你需要按照以下要求,给这些孩子分发糖果: 每个孩子至少分配到 1 个糖果。相邻两个孩子评分更高的孩子会获得更多的糖果。 请你给每个孩子分发糖果,计算并返回需要准备的…

C语言中连字符“#”的使用,输出固件的编译时间和版本号

首先我们使用C语言宏定义和“#”来组合字符串 #define MAINVER 2#define SUBVER1 0#define SUBVER2 1#define STR(s) #s#define VERSION(a,b,c) "System V" STR(a) "." STR(b) "." STR(c) " "__DATE__ 然后我们在全局变量中定义一…

服务器硬件

目录 服务器CPU服务器GPU服务器内存服务器硬盘服务器主板散热系统(服务器风扇)服务器电源(电影供应器)其他网络适配器扩展卡 服务器CPU 基于架构的分类:根据CPU的架构不同,可以分为x86架构(如I…

API接口鉴权签名设计

在设计API接口的鉴权签名时,通常会使用一种加密算法来生成签名,以确保请求的合法性和安全性。以下是通过鉴权签名的设计方案。 1、接口秘钥设置 Key:123 Secret:abc 2、接口Url 接口Url需要使用https的协议保证接口数据安全传输 3、请求参数 3.1、…

VsCode的json文件不允许注释的解决办法

右下角找到注释点进去 输入Files: Associations搜索出此项 改为项为*.json值为jsonc保存即可 然后会发现VsCode的json文件就允许注释了

哈工大 sse C语言 困难

Q1892.(10分数, 语言: C)Two Bags of Potatoes time limit per test1 second memory limit per test256 megabytes inputstandard input outputstandard output Valera had two bags of potatoes, the first of these bags contains x (x≥1) potatoes, and the second — y (y…

RAG进阶笔记:RAG进阶

1 查询/索引部分 1.1 层次索引 创建两个索引——一个由摘要组成,另一个由文档块组成分两步进行搜索:首先通过摘要过滤出相关文档,接着只在这个相关群体内进行搜索 1.2 假设性问题 让LLM为每个块生成一个假设性问题,并将这些问…

SQL104 返回产品名称和每一项产品的总订单数(left join..on.. ,group by)

select prod_name,count(order_num) as orders from Products P left join OrderItems OI on OI.prod_id P.prod_id group by prod_name order by prod_name;left join一个数据条多的表 count(order_num),group by 另一个字段

C/C++ 各种编译器平台判断,返回对应平台CPU缩写符

参考以下实现,MIPS、ARM、RISV64、X86、X86_64、M68K、S390X、MIPS64、PPC64、LONGARCH32、LONGARCH64等。 const char* GetPlatformCode() noexcept { #if defined(__x86_64__) || defined(_M_X64)return "X86_64"; #elif defined(i386) || defined(__i3…

openEuler 22.03 安装 .NET 8.0

openEuler 22.03 安装 .NET 8.0 openEuler 22.03 安装 .NET 8.0 openEuler 22.03 安装 .NET 8.0 查看内核信息 [jeffPC-20240314EIAA ~]$ cat /proc/version Linux version 5.15.146.1-microsoft-standard-WSL2 (root65c757a075e2) (gcc (GCC) 11.2.0, GNU ld (GNU Binutils)…

ArkTS 的基本语法

ArkTS 的基本语法 ArkTS 是鸿蒙生态的应用开发语言。它在保持 TypeScript(简称 TS)基本语法风格的基础上,对 TS 的动态类型特性施加更严格的约束,引入静态类型。同时,提供了声明式 UI、状态管理等相应的能力&#xff…

全志R128 SDK HAL 模块开发指南——GPADC

GPADC 模块介绍 GPADC 是 12bit 采集精度的模数转换模块,支持 4 路通道,模拟输入范围 0-1.8v,最高采样率 1MHZ,并且支持数据比较,自校验功能,同时工作于可配置的四种工作模式: Single mode&a…