IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> Docker常用操作总结(安装mysql、nacos、nginx、redis及数据操作,你想要的全都有) -> 正文阅读

[系统运维]Docker常用操作总结(安装mysql、nacos、nginx、redis及数据操作,你想要的全都有)

目录

镜像操作实践

下载镜像

浏览镜像文件

查看镜像详情

查看镜像历史

导出镜像文件

删除镜像文件

导入镜像操作

运行镜像文件

镜像安装

一、安装Mysql

二、安装Redis

三、Nginx

四、安装Nacos组件

容器操作实践

创建并启动容器

停止(stop)重启(Restart)容器

查看容器Container

查看容器(logs)信息

进入(exec)指定容器

从容器中退出

删除(rm)容器

数据管理实践

概述

数据卷

创建数据卷

查看所有数据卷

查看指定数据卷

启动挂载数据卷的容器

删除数据卷

清理无主数据卷

挂在主机目录

查看挂载点目录信息

容器互联实践

概述

解决方案

新建网络

查看网络信息

创建容器

测试网络互通


镜像操作实践

下载镜像

语法:docker pull 镜像名

docker pull hello-world

浏览镜像文件

语法:docker images

docker images

查看镜像详情

语法:docker inspect

docker inspect hello-world

查看镜像历史

语法:docker history hello-world

docker history hello-world

导出镜像文件

语法:docker save hello-world | gzip > hello-world.tar.gz

docker save hello-world | gzip > hello-world.tar.gz

删除镜像文件

语法:docker image rm 镜像名或者镜像id

docker image rm hello-world

导入镜像操作

语法:docker load < hello-world.tar.gz

注:要在hello-world.tar.gz文件所在目录下执行

docker load < hello-world.tar.gz

运行镜像文件

语法:docker run hello-world

docker run hello-world

镜像安装

一、安装Mysql

1.进入docker官网hub.docker.com搜索mysql镜像

1.1也可以选择导入别人的镜像

2.下载需要版本的mysql,冒号左侧为版本号,不写为最新版

docker pull mysql:8.0.23

3.查看是否加载镜像成功

docker images

4.启动运行mysql镜像(docker run 用于启动一个容器,虚拟机用户为root时sudo可以省略,如果安装失败,查看容器中是否已经存在->>docker ps -a,如果存在删除重新安装)

sudo docker run -p 3306:3306 --name mysql \
-v /usr/local/docker/mysql/mysql-files:/var/lib/mysql-files \
-v /usr/local/docker/mysql/conf:/etc/mysql \
-v /usr/local/docker/mysql/logs:/var/log/mysql \
-v /usr/local/docker/mysql/data:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=root \
-d mysql:8.0.23

5.登录

5.1进入容器(退出容器exit)

sudo docekr exec -it mysql bash

5.2登录,默认密码为root,一定要先进入mysql容器

mysql -uroot -proot

5.3直接登录

sudo docker exec -it mysql mysql -uroot -proot

6查看mysql启动时日志,

docker container logs mysql

7开机自启

docker update mysql --restart=always

二、安装Redis

1.下载镜像文件

docekr pull redis

2.准备配置文件

注:创建redis配置文件目录

mkdir -p /usr/local/docker/redis1/conf

注:在配置文件目录下创建redis.con配置文件(不创建会导致我们进行目录挂载时默认生成目录)

touch /usr/local/docker/redis1/conf/redis.conf

3.创建redis实例并启动

sudo docker run -p 6379:6379 --name redis01 \
-v /usr/local/docker/redis01/data:/data \
-v /usr/local/docker/redis01/conf/redis.conf:/etc/redis/redis.conf \
-d redis redis-server /etc/redis/redis.conf 

4.查看正在运行的进程内

docker ps

5.控制台直接连接redis测试

docker exec -it redis1 bash

6.检测redis版本

redis-server -v
redis-cli -v

7.登录redis(默认不需要密码)

redis-cli

8.停止redis

docker stop redis1

9.启动redis

docker start redis1

10.重启redis

docker restart redis1

三、Nginx

1.下载镜像文件

docekr pull nginx

2.查看镜像文件

docker images

3.创建数据卷

docker volume create nginx-vol

3.1查看数据卷对相应的目录

docker inspect nginx-vol

4.启动nginx服务

docker run --name nginx -p 80:80 -v nginx-vol:/etc/nginx -d nginx

其中:/etc/nginx为nginx容器启动时,nginx镜像文件默认的解压目录

假如想修改nginx配置,进入nginx-vol数据卷对应的目录修改

nginx默认端口为80,打开浏览器输入localhost:80 ,:80可以省略,如果页面显示Welcome to nginx!表示启动成果

5.停止nginx服务

docker stop nginx

6.启动nginx服务

docker start nginx

7.重启nginx服务

docker restart nginx

四、安装Nacos组件

1.拉取nacos(hub.docker.com)

docker pull nacos/nacos-server:1.4.1

2.mysql中执行nacos的sql脚本文件

2.1将此文件nacos-mysql.sql(这个文件可从code服务器下载)拷贝到mysql容器的宿主机对应的挂载目录(可通过docker?inspect mysql查看mysql的挂载目录)

2.2启动mysql容器并登录mysql

docekr exec -it mysql mysql -uroot -proot

3.通过指令运行容器目录下的sql文件

source /etc/mysql/nacos-mysql.sql

4.创建并启动nacos容器(拷贝下面内容时,账号和密码要用自己宿主机ip,自己数据库的账号密码)

docker run  \
-e TZ="Asia/Shanghai" \
-e MODE=standalone \
-e SPRING_DATASOURCE_PLATFORM=mysql \
-e MYSQL_DATABASE_NUM=1 \
-e MYSQL_SERVICE_HOST=192.168.126.129 \
-e MYSQL_SERVICE_PORT=3306 \
-e MYSQL_SERVICE_USER=root \
-e MYSQL_SERVICE_PASSWORD=root \
-e MYSQL_SERVICE_DB_NAME=nacos_config \
-p 8848:8848 \
--name nacos \
--restart=always \
-d nacos/nacos-server:1.4.1

参数说明

单节点模式
MODE=standalone
数据库地址
MYSQL_SERVICE_HOST
数据库用户名
MYSQL_SERVICE_USER
数据库密码
MYSQL_SERVICE_PASSWORD
需连接的数据库名称
MYSQL_SERVICE_DB_NAME
端口映射
-p 8848:8848
5.任意时候重启容器,开机就能自动启动容器(需设置docker为开机自启)

--restart=always

6.检查nacos服务

docker ps

7.假如启动失败,检查日志(日志在/home/nacos/logs/start.out)

docker container logs nacos

8.停止和/启动/重启nacos服务

docker stop/start/restart nacos

容器操作实践

1.下载镜像(官方镜像仓库https://hub.docker.com/)

docker pull centos:7

2.查看镜像文件

docker images

创建并启动容器

1)xxxx - 镜像名, 或 image id 的前几位,
2)-it 这是两个参数(-i表示交互式操作, -t 表示终端)
3) bash 表示进入操作终端,基于交互式进行相关操作(例如执行linux相关指令)。

docker run -it xxxx bash

停止(stop)重启(Restart)容器

docker container stop/restart 容器id   #其中操作容器时container可以省略

查看容器Container

docker ps -a

查看容器(logs)信息

docker container logs 容器id

进入(exec)指定容器

docker exec -it 容器id bash    #容器id可以用容器名替代

从容器中退出

exit

删除(rm)容器

如果容器正在运行使用-f进行强制删除

docker rm 容器id
docker rm -f 容器id

数据管理实践

概述

在容器中管理数据主要有两种方式:

  • 数据卷(Volumes)
  • 挂载主机目录(Bind mounts)

数据卷

数据卷是一个可供一个或多个容器使用的特殊目录,可以在容器之间共享和重用,默认会一直存在,即使容器被删除。

创建数据卷

docker volume create container-vol

查看所有数据卷

docker volume ls

查看指定数据卷

docker volume inspect container-vol

启动挂载数据卷的容器

docker run -it --mount source=container-vol,target=/root centos:7 bash
#简写docker run -it -v container-vol:/root centos:7 bash

删除数据卷

docker volume rm container-vol

清理无主数据卷

docker volume prune

挂在主机目录

1)/usr/app:为宿主机目录
2)/opt/app: 为启动容器的一个目录
3)-v 用于指定挂载目录,如果本地目录(宿主机目录)不存在, Docker 会自动为你按照挂载目录进行目录的创建。

docker run -it -v /usr/app:/opt/app centos:7 bash

查看挂载点目录信息

docker inspect 容器id

容器互联实践

概述

Docker 中存在多个容器时,容器与容器之间经常需要进行通讯,例如nacos访问mysql,redis集群中各个节点之间的通讯。

解决方案

Docker 中容器与容器之间进行通讯的解决方案一般有两种:
第一种:两个容器通过宿主机进行通讯(容器中的端口会映射到宿主机上)
第二种:两个容器之间直接通过虚拟网络进行连接,但是需要我们在docker中创建网络。

新建网络

docker network create -d bridge f-net

查看网络信息

docker network ls #列出所有网络
dockers inspect 容器id #查看网络信息

创建容器

打开终端,基于centos:7这个镜像启动容器,并假如到f-net这个网络

docker run -it --name app1 --network f-net centos:7

新开终端执行,基于centos:7这个镜像再启动容器,同时也加入到t-net网络

docker run -it --name app2 --network f-net centos:7

测试网络互通

在两个终端分别执行:

ping app1
ping app2

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2021-12-14 16:22:28  更:2021-12-14 16:22:53 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/16 4:42:01-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码