架构师之路--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盘,突然提示“未格式化”,里面的文件似乎都消失不见了。面对这种情况,很多人会感到…

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

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

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…

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__ 然后我们在全局变量中定义一…

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

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

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 另一个字段

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

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

科学高效备考2024年汉字小达人:历年真题详细解析-古诗文专题10

距离2024年第11届汉字小达人比赛还有七个多月的时间,如何利用这段时间有条不紊地备考呢?我的建议是两手准备:①把小学1-5年级的语文课本上的知识点熟悉,重点是字、词、成语、古诗。阅读理解不需要。②把历年真题刷刷熟&#xff0c…

JAVA的sort用法详解(二维数组排序,List<>排序,lambada表达式,自定义类型排序)

目录 前言&#xff1a; 一维数组降序&#xff1a; 方法1.Comparator接口&#xff1a; 代码实现&#xff1a; 方法2.Collections.reverseOrder()&#xff1a; 代码实现&#xff1a; 二维数组排序&#xff1a; 代码如下&#xff1a; List<>排序&#xff1a; 代码…

Ansible-1

Ansible是一款自动化运维、批量管理服务器的工具&#xff0c;批量系统配置、程序部署、运行命令等功能。基于Python开发&#xff0c;基于ssh进行管理&#xff0c;不需要在被管理端安装任何软件。Ansible在管理远程主机的时候&#xff0c;只有是通过各种模块进行操作的。 需要关…

Linux 注入依赖环境

文章目录 配置依赖程序安装 JDK安装 Tomcat安装 mysql 配置依赖程序 下面配置依赖程序都以CentOS为例。 安装 JDK 可以直接使用 yum(CentOS) 直接进行安装。 先搜索&#xff0c;确定软件包的完整名称。 yum list | grep jdk再进行安装 进行安装的时候一定要先确保处在“管理…

【详细讲解React 快速入门教程】

&#x1f525;博主&#xff1a;程序员不想YY啊&#x1f525; &#x1f4ab;CSDN优质创作者&#xff0c;CSDN实力新星&#xff0c;CSDN博客专家&#x1f4ab; &#x1f917;点赞&#x1f388;收藏⭐再看&#x1f4ab;养成习惯 &#x1f308;希望本文对您有所裨益&#xff0c;如有…

【C语言】strcmp 的使⽤和模拟实现

前言 这篇文章将要带我们去实现模拟一个strcmp函数 首先我们要知道strcmp函数的定义 strcmp()定义和用法 我们先看一下strcmp在cplusplus网站中的定义 链接: link int strcmp ( const char * str1, const char * str2 );比较两个字符串将 C 字符串 str1 与 C 字符串 str2 …

openssl AF_ALG引擎使用

cmd AF_ALG是Linux提供的一种虚拟接口&#xff0c;用于访问内核中的加密算法。在Linux中&#xff0c;可以使用AF_ALG接口配合加密算法框架&#xff08;Crypto API&#xff09;来进行加密操作。 以下是一个使用AF_ALG和openssl进行加密操作的例子&#xff1a; # 加密 openssl…

smarteye server内置对多种第三方协议(28181/RTSP/RTMP)的输入、输出的支持

smarteye server内置支持了多种协议的输入转换、转换输出&#xff0c;包括GB28181、RTSP、RTMP等等。 目前smarteye server可支持的输入、输出的协议有&#xff1a;RTSP in/out, ONVIF in, RTMP in/out&#xff0c;GB28181 in/out。 常用的即smarteye server可作为国标28181…

最新海外投资理财源码 amazon多语言投资理财系统源码 区块链理财项目平台源码 共享充电宝系统

一款新UI的海外多语言刷单系统&#xff0c;支持后台在线添加订单派单、预约派单、余额宝等功能 源码下载&#xff1a;https://download.csdn.net/download/m0_66047725/88949885 更多资源下载&#xff1a;关注我。