架构师之路--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/ifconfig
 vim /etc/profile
 export PATH=$PATH:/usr/sbin
 source /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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

谭浩强第五版C语言课后习题(编程题)+答案

谭浩强第五版作为初学C语言必读的一本教材,课后习题具有非常大的参考价值,也是很多高校期末考试或者考研的重要参考。在这里我整理了一部分个人认为比较重要的编程题,供大家作参考 1.输入两个数,求他们的最大公约数和最小公倍数&…

Vector授权狗驱动安装方法

安装好主体软件后,建议先安装最新官方正版驱动:Vector Driver Setup。然后再复制补丁到C盘指定位置,替换原文件。如果你之前已安装老版本的驱动,则建议先卸载老版本的驱动,主体软件不需要卸载。卸载建议用原来安装时用…

关于柔性阵列(/三维阵列)波束形成的仿真实践以及稳健波束形成的思考(1)

说明 关于波束形成,我之前写过几篇相关的博文,如参考资料[1]、[2]、[3]。除去在博文[2]中有讨论过阵元相对位置关系对波束形成的影响:“如何基于遗传算法优化阵元相对位置关系以压低旁瓣峰值”以外,似乎我认知里的天线阵列&#x…

【Linux实验室】测试ext4文件系统的最大inode数量

【Linux实验室】测试ext4文件系统的最大inode数量 实验目的 1、熟悉inode的定义与作用 2、熟悉Linux文件系统类型 3、测试ext4文件系统的最大inode数量 实验环境 centos7.10 64-bit 实验原理 inode定义 安装操作系统或格式化磁盘分区的时候,操作系统会自动把…

教你如何快速批量删除文件名中相同的文字

在现代计算机系统中,文件夹是一种重要的组织和管理文件的方式。文件夹名称可以反映其内部文件的内容或属性,有助于用户快速识别和定位所需的文件。然而,有时我们会遇到需要统一删除文件夹名称的部分的情况。统一删除文件夹名称的部分可能是为…

PHiSeg:捕捉医学图像分割中的不确定性

PHiSeg:捕捉医学图像分割中的不确定性 摘要引言方法 PHiSeg Capturing Uncertainty in Medical Image Segmentation 摘要 解剖结构和病理的分割本质上是模糊的。例如,结构边界可能不清晰可见,或者不同的专家可能具有不同的注释风格。大多数当…

80个Python数据分析必备实战案例.pdf(附代码),完全开放下载

大家好,我是彭涛。 随着数据时代的来临,Python数据分析技能现在愈加重要,无论是从事数据科学、商业分析还是决策支持,掌握 Python 数据分析的技能都将成为你事半功倍的利器。 之前为大家陆续梳理了基础资料,爬虫资料…

Navicat 干货 | 通过检查约束确保 PostgreSQL 的数据完整性

数据完整性对于任何数据库系统来说都是很重要的一方面,它确保存储的数据保持准确、一致且有意义的。在 PostgreSQL 中,维护数据完整性的一个强大工具是使用检查约束。这些约束允许你定义数据必须遵守的规则,以防止无效数据的插入或修改。本文…

什么是根据人类反馈的强化学习Reinforcement Learning with Human Feedback(RLHF)?

基于人类反馈的强化学习(Reinforcement learning with human feedback)是近年来越来越受欢迎的一种前沿技术,用于提高大型语言模型的性能。这是种使用人类反馈训练这些模型的有效方法,而该方法的输入组件与搜索评估也有诸多相似之…

企业指标体系的落地与推广:让指标体系真正发挥作用

一、精心策划实施计划,确保项目有序进行 为确保指标体系的顺利落地与推广,我们精心策划了实施计划。首先,我们制定了详细的时间表,明确了项目启动、关键节点和结束时间,确保项目能够按期推进。同时,我们还将…

面试题(四)

目录 61.简述MyISAM和InnoDB的区别 62.Explain语句结果中各个字段分表表示什么 63.索引覆盖是什么 64.最左前缀原则是什么 65.Innodb是如何实现事务的 66.B树和B树的区别,为什么Mysql使⽤B树 67.Mysql锁有哪些,如何理解 68.Mysql慢查询该如何优化…

【JavaWeb】Day18.Vue组件库Element

什么是Element Element:是饿了么团队研发的,一套为开发者、设计师和产品经理准备的基于 Vue 2.0 的桌面端组件库。组件:组成网页的部件,例如 超链接、按钮、图片、表格、表单、分页条等等。官网:Element - The worlds…

每日汇评:复活节假期前,欧元保持在关键技术位之间

周四欧洲早盘,欧元兑美元小幅下跌至1.0800; 谨慎的市场情绪帮助美元在数据发布前守住了阵地; 美联储理事沃勒表示,他们并不急于降低政策利率; 周四欧洲早盘,欧元兑美元受到温和的看跌压力,并跌向…

Python算法100例-4.6 歌星大奖赛

完整源代码项目地址,关注博主私信源代码后可获取 1.问题描述2.问题分析3.算法设计4.确定程序框架5.完整的程序6.问题拓展7.知识点补充 1.问题描述 在歌星大奖赛中,有10个评委为参赛的选手打分,分数为1~100分。选手最…

【Vue3之computed属性(四)】

文章目录 前言一、computed属性有缓存二、使用方法三、修改全名 前言 理解computed属性,实现输入姓和名得出全名并双向绑定,区分单向绑定和双向绑定。测试computed属性和方法的区别 一、computed属性有缓存 先引入computed,写箭头函数定义并…

Windows安装Odoo结合内网穿透实现公网访问本地企业管理系统

文章目录 前言1. 下载安装Odoo:2. 实现公网访问Odoo本地系统:3. 固定域名访问Odoo本地系统 前言 Odoo是全球流行的开源企业管理套件,是一个一站式全功能ERP及电商平台。 开源性质:Odoo是一个开源的ERP软件,这意味着企…

springboot实战---5.最简单最高效的后台管理系统开发

🎈个人主页:靓仔很忙i 💻B 站主页:👉B站👈 🎉欢迎 👍点赞✍评论⭐收藏 🤗收录专栏:SpringBoot 🤝希望本文对您有所裨益,如有不足之处&…

网络编程之流式套接字

流式套接字(SOCK_STREAM)是一种网络编程接口,它提供了一种面向连接的、可靠的、无差错和无重复的数据传输服务。这种服务保证了数据按照发送的顺序被接收,使得数据传输具有高度的稳定性和正确性。通常用于那些对数据的顺序和完整性…

Backend - gitea 首次建库(远端本地)

目录 一、建立远端储存库 1. 进入新增画面 2. 填写储存库名称(如book),点击“建立”即可 二、本地关联远端储存库 1. 本地初始化储存库代码 (1)新建文件夹 (2)获取远端储存库 2. 本地编写…

Linux:基础IO

回顾C文件接口 stdin & stdout & stderr C 默认会打开三个输入输出流&#xff0c;分别是 stdin, stdout, stderr 仔细观察发现&#xff0c;这三个流的类型都是 FILE*, fopen 返回值类型&#xff0c;文件指针 系统文件I/O 接口介绍 open man open #include <sy…