首页 > 系统相关 >linux学习记录(docker)

linux学习记录(docker)

时间:2024-07-27 18:56:00浏览次数:16  
标签:容器 记录 -- mysql yum linux docker Docker

Docke

Docker是基于Go语言实现的开源容器项目。它诞生于2013年年初,最初发起者是dotCloud公司。Docker自开源 后受到业界广泛的关注与参与,目前已有80多个开源组件,逐渐形成了围绕Docker容器的完整的生态体系。 dotCloud公司于2013年年底改名为Docker Ioc,专注于Docker相关技术和产品的开发,目前已经成为全球最大的 Docker容器服务提供商。官方网站为:docker.com

docker的优势

1.轻量化和快速部署:Docker容器是轻量级的,可以在几秒钟内启动和停止,Docker更加节省资源,可以快速部署和扩展

2.跨平台和可移植性:Docker可以在不同的操作系统和平台上运行,包括Linux、Windows和Mac等

3.高效的资源利用:Docker使用容器化技术,可以将应用程序及其依赖项打包到一个独立的容器中。这样可以 避免不同应用程序之间的冲突,并且可以更好地利用服务器的资源。

4.简化的管理和维护:Docker提供了一套简单易用的命令行工具和API,可以方便地管理和维护容器。开发人员 可以使用Docker镜像来构建和发布应用程序,系统管理员可以使用Docker容器来隔离和管理不同的服务。

5.可靠性和安全性:Docker容器提供了隔离的运行环境,可以确保应用程序之间的互不干扰。同时,Docker还 提供了一些安全机制,如命名空间和控制组,可以限制容器的资源使用和访问权限,提高应用程序的安全 性。

下载docker

在下载docker之前需要做一些准备工作

首先需要将防火墙关闭,并且取消自启动

systemctl disable --now firewalld

关闭dnsmasq,并取消开启自启动

systemctl disable --now dnsmasq

关闭NetworkManager,并取消自启动,如果是centos8就不需要进行这步操作了

systemctl disable -- now NetworkManager

关闭seliux

setenforce 0

sed -i 's/endorcing/disabled/' /etc/selinux/config

临时停止关闭swap

swapoff -a && sysctl -w vm.swappiness=0

进入 /etc/fstab文件夹

注释掉/dev/mapper/centos-swap swap swap defaults 0 0

安装docker

先将yum包更新到最新状态

yum update

安装需要的软件包

yum install -y yum-utils device-mapper-persistent-data lvm2

设置yum源

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

安装docker,出现输入的界面都按y,在这里没有设置版本就默认为最新版本

yum install -y docker-ce

查看docker'版本,验证是否成功

docker -v

接着要获取一个阿里云(别的也可以,在这里用阿里云举例)的镜像.地址是:

阿里云登录 - 欢迎登录阿里云,安全稳定的云计算服务平台

在登录之后就会有一个ip,要将你的ip添加在/etc/docker/daemon.json中

{

"registry-mirrors": ["https://你的ID.mirror.aliyuncs.com"]

}

docker相关命令

启动docker

systemctl start docker

停止docker

systemctl stop docker

重启docker

systemctl restart docker

设置开机自启动

systemctl enable docker

镜像相关命令

查看镜像

docker images

搜索镜像

docker search

拉取镜像

docker pull

删除镜像

docker rmi 镜像名称

docker rmi -f 镜像名称(强制删除)

容器相关命令

查看容器

查看正在进行的容器

docker ps

查看所有容器

docker ps -a

创建并启动容器

docker run 参数

创建守护式容器:

docker run -id --name=c2 centos:7

交互式容器会在exit后容器自动关闭,守护式容器不会

进入容器

docker exec -it c2 /bin/bash

停止容器

docker stop 容器名称

启动容器

docker start 容器名称

删除容器

需要先停止容器才能删除

docker rm 容器名称

docker rm -f 容器名称 (强制删除容器)

查看容器信息

docker inspect 容器名称

退出容器

exit

卸载docker

查看yum安装的docker文件包

yum list installed |grep docker

 查看docker相关的rpm源文件

rpm -qa |grep docker

 删除相关服务

yum -y remove xxx

docker应用部署

如何用docker部署mysql

先拉取mysql的镜像文件

docker pull mysql:5.7

创建容器,端口映射和目录映射

docker run -d --name=c_mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -e MYSQL_DATABASE=dn mysql:5.7 --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci

p 代表端口映射,格式为 宿主机映射端口:容器运行端口

-e MYSQL_ROOT_PASSWORD=123456 //表示设置root的密码为123456

-e MYSQL_DATABASE=dn //创建mysql数据库容器的同时初始化创建一个数据库 dn

进入容器操作mysql

开启mysql

docker exec -it c_mysql /bin/bash

登录mysql

mysql -uroot -p

修改密码

ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';

刷新权限

flush privileges 

docker容器的数据卷

数据卷是宿主机中的一个目录或者文件,数据卷的数据和主机是同步的,一个数据卷可以被多个容器挂载,一个容器也可以挂载多个数据卷

数据卷的作用

容器数据持久化

外部机器和容器间接通信

容器之间数据交换

配置数据卷容器

拉取一个镜像

docker pull centos:7

创建启动c3数据卷容器,使用 –v 参数 设置数据卷

docker run –it --name=c3 –v /volume centos:7 /bin/bash

这里没有指定宿主机目录,默认生成一个宿主机目录

docker inspect c3 (查看c3)

创建启动 c1 c2 容器,使用 –-volumes-from 参数 设置数据卷

docker run -it --name=c1 --volumes-from c3 centos:7 /bin/bash

docker run -it --name=c2 --volumes-from c3 centos:7 /bin/bash

代码如图:

标签:容器,记录,--,mysql,yum,linux,docker,Docker
From: https://blog.csdn.net/m0_70862775/article/details/140714090

相关文章

  • 菜鸟通关sqli-labs记录(1-54)
    目录基础环境所需知识Mysql系统数据库union联合查询通关过程通用思路1.第一关2.第二关2.1判断有无注入点2.2猜解列名数量(字段数量)2.3报错,判断回显点2.4信息收集2.5使用对应的SQL注入3.第三关4.第四关5.第五关6.第六关7.第七关8.第八关9.第九关10.第十关11.第十一关12.......
  • Java全栈课程之Linux——账号管理
    一、简介Linux系统是一个多用户多任务的分时操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统。用户的账号一方面可以帮助系统管理员对使用系统的用户进行跟踪,并控制他们对系统资源的访问;另一方面也可以帮助用户组织文......
  • Docker 和 k8s 学习
    披个甲:偷的图灵学院的笔记docker:https://note.youdao.com/ynoteshare/index.html?id=db5365c679b7d9129cbcfab5cb682d69&type=note&_time=1722071596141k8s:https://note.youdao.com/ynoteshare/index.html?id=b2d5991b16e43cef9ac5071fbc516026&type=note&_time=1722......
  • [RHEL7基础篇-14] Linux中的LVM管理
    简介LVM(逻辑卷管理)是一种在Linux系统上使用的逻辑卷管理工具。它允许用户管理磁盘分区和分卷,以便更有效地使用存储空间。LVM是一种强大的存储管理工具,使用户能够更有效地管理磁盘空间,并提供高级功能来保护数据和增强系统的可用性。下面我们将使用RHEL7来学习LVM的使用。LV......
  • 记录--终于搞懂了!原来vue3中template使用ref无需.value是因为这个
    ......
  • Linux磁盘管理
    Linux磁盘管理Linux在使用过程中产生的数据量不断增大,逐渐导致初始配置的磁盘空间不足,这时候就需要进行扩容,以满足业务需求。一般情况下会选择新添加磁盘,本文介绍了如何将新磁盘分区、格式化、挂载或制作LVM逻辑卷,进行磁盘空间扩容。1.基本分区磁盘的分区格式一共有两种:一......
  • 运行 Github Action 测试 Docker 镜像时退出代码 137
    我正在学习Testdriven.io:使用FastAPI和Docker进行测试驱动开发课程,目前正在学习持续集成部分。在本节中,您将使用github操作来构建docker映像并运行测试和linting等。在流程的测试Docker映像步骤中,当尝试进行pytest时,我收到以下错误:错误:进程已完成并退出代码......
  • Linux应用层开发(6):SPI通信
            本章通过讲解在应用层中使用SPI总线与外部设备的通讯,讲解Linux系统总线类型设备驱动架构的应用,它与上一章的I2C总线操作方法非常相似,可以对比学习。在Linux内核文档的Documentation/SPI目录下有关于SPI驱动非常详细的说明。1. SPI通讯协议简介     ......
  • Linux应用层开发(5):I2C通讯
    1.I2C通讯协议简介 I2C通讯协议(Inter-IntegratedCircuit)是由Phiilps公司开发的,由于它引脚少,硬件实现简单,可扩展性强,不需要USART、CAN等通讯协议的外部收发设备,被广泛地使用在多个集成电路(IC)间的通讯。 1.1. I2C物理层I2C通讯设备之间的常用连接方式如下图。......
  • 如何在Linux上的python中以后台模式打开程序?
    我需要在Linux上以后台模式使用python打开另一个程序。我尝试过subprocess.call("yourcommand")但它不是后台模式。并且os.startfile("file")在Linux上不起作用。请帮助我。可以使用Python的subprocess模块在Linux上以后台模......