什么是网站推广方案,中型网站,合肥设计公司排名,企业网站模板用哪个目录 #xff08;一#xff09;镜像命令
一、拉取Nginx
二、查看镜像
三、导出文件
四、删除镜像
五、加载镜像
#xff08;二#xff09;容器命令
一、例子#xff1a;运行一个nginx容器
1、输入运行命令
2、使用命令查看宿主机ip
3、在外部浏览器访问
4、查看…目录 一镜像命令
一、拉取Nginx
二、查看镜像
三、导出文件
四、删除镜像
五、加载镜像
二容器命令
一、例子运行一个nginx容器
1、输入运行命令
2、使用命令查看宿主机ip
3、在外部浏览器访问
4、查看日志
二、例子修改nginx的index.html文件
1、进入容器
2、进入HTML所在目录
3、修改内容
4、在网页查看
5、停止容器
6、重启容器
7、删除容器
8、展示容器
三、例子创建并运行一个redis容器并实现数据持久化
1、使用命令运行redis容器
2、进入容器并执行redis-cli客户端命令存入num666
3、查看是否成功
注也可以直接进入redis
四、数据卷
1、传统数据和容器耦合
2、使用数据卷解决问题
3、基本操作
4、数据卷的作用
五、例子创建一个数据卷并查看数据卷在宿主机的目录位置
1、使用命令创建数据卷
2、查看是否创建成功
3、查看详细信息
4、删除未使用的卷
六、例子挂载数据卷
1、创建nginx容器并挂载
2、查看数据卷详细信息
3、复制文件位置在Moba中找到文件
4、右键选择使用VSCode打开并修改
5、在网页中查看
七、例子创建并运行一个MySQL容器将宿主机目录直接挂载到容器
1、下载或导入mysql镜像
2、创建目录
3、在conf中创建配置文件并编写
4、创建容器并挂载
5、在navicat创建连接
6、总结
八、自定义镜像
九、例子基于Ubuntu镜像构建一个新的镜像运行一个java项目
1、创建docker-demo目录和Dockerfile文件并在其中编写如下
2、向docker-demo中导入文件
3、输入命令创建镜像
4、创建容器
5、在页面访问
十、例子使用alpine创建镜像
1、修改dockerfile
2、构建镜像
十一、DockerCompose
1、作用
十二、部署微服务集群
1、编写docker-compose.yml文件
2、将java代码中的数据库和nacos地址都改为yml文件中的服务地址
3、在每个微服务的pom文件中都加上打包依赖
4、清理缓存
5、打包
6、在target目录中找到jar包并拷贝到对应目录
7、进入虚拟机将cloud-demo文件夹导入tmp
8、进入cloud-demo文件并运行 一镜像命令 一、拉取Nginx
docker pull nginx
二、查看镜像
docker images
三、导出文件
docker save -o nginx.tar nginx:latest
四、删除镜像
docker rmi 名字:版本 或 ID
五、加载镜像
docker load -i nginx.tar
二容器命令 注
暂停时操作系统会将容器挂起可以恢复
停止时操作系统会将容器删除无法恢复
所以不使用unstop
一、例子运行一个nginx容器
1、输入运行命令
docker run --name containerName -p 80:80 -d nginxdocker run :创建并运行一个容器--name:给容器起一个名字比如叫做mn-p︰将宿主机端口与容器端口映射冒号左侧是宿主机端口右侧是容器端口-d:后台运行容器nginx:镜像名称例如nginx 注意 此命令会创建一个宿主机80端口和容器80端口的映射当访问宿主机80端口时请求会映射到容器的80端口从而实现容器的访问。 2、使用命令查看宿主机ip
ifconfig 3、在外部浏览器访问 4、查看日志
docker logs -f 容器名 //跟踪日志输出docker logs 容器名 //日志
二、例子修改nginx的index.html文件
1、进入容器
docker exec -it mn bash docker exec :进入容器内部执行一个命令-it:给当前进入的容器创建一个标准输入、输出终端允许我们与容器交互mn :要进入的容器的名称bash:进入容器后执行的命令bash是一个linux终端交互命令
2、进入HTML所在目录
cd /usr/share/nginx/html3、修改内容
sed -i s#Welcome to nginx#修改了这里#g index.html
sed -i s#head#headmeta charsetutf-8#g index.html4、在网页查看 5、停止容器
docker stop mynginx
6、重启容器
docker restart mynginxdocker start mynginx
7、删除容器
docker rm mynginx //删除docker rm -f mynginx //强制删除
8、展示容器
docker ps //展示运行中容器docker ps -a //展示所有容器
三、例子创建并运行一个redis容器并实现数据持久化
1、使用命令运行redis容器
docker run --name redis -p 6379:6379 -d redis redis-server --appendonly yes2、进入容器并执行redis-cli客户端命令存入num666
docker exec -it redis bash
redis-cli
set num 666 3、查看是否成功
get num 注也可以直接进入redis
docker exec -it redis redis-cli四、数据卷
1、传统数据和容器耦合 2、使用数据卷解决问题 在上图中数据存储在宿主机的文件系统中不会因为容器的删除而删除而且同一份数据可以被多个容器所使用实现数据共享在宿主机中更容易修改配置且容易升级和维护
3、基本操作 4、数据卷的作用
将容器与数据分离解耦合方便操作容器内数据保证数据安全
五、例子创建一个数据卷并查看数据卷在宿主机的目录位置
1、使用命令创建数据卷
docker volume create html
2、查看是否创建成功
docker volume ls
3、查看详细信息
docker inspect html
4、删除未使用的卷
docker volume prune
六、例子挂载数据卷
1、创建nginx容器并挂载
docker run --name mynginx -p 80:80 -v html:/usr/share/nginx/html -d nginx2、查看数据卷详细信息
docker inspect html 3、复制文件位置在Moba中找到文件 4、右键选择使用VSCode打开并修改 5、在网页中查看 注意
若挂载时数据卷不存在docker会自动帮你生成
七、例子创建并运行一个MySQL容器将宿主机目录直接挂载到容器
1、下载或导入mysql镜像
docker pull mysql //下载docker load -i mysql.tar //导入
2、创建目录
mkdir -p mysql/datamkdir -p mysql/conf 3、在conf中创建配置文件并编写
vi ms.cnf
[mysqld]
skip-name-resolve
character_set_serverutf8
datadir/var/lib/mysql
server-id1000
4、创建容器并挂载
docker run \--name mysql \-e MYSQL_ROOT_PASSWORD123 \-p 3306:3306 \-v /tmp/mysql/conf/hmy.cnf:/etc/mysql/conf.d/hmy.cnf \-v /tmp/mysql/data:/var/lib/mysql \-d \mysql:5.7.25
第一个-v前面是宿主机配置文件位置后面是容器配置文件位置
第二个-v前面是宿主机数据文件位置后面是容器数据文件位置
5、在navicat创建连接 6、总结 八、自定义镜像 镜像是分层结构每一层称为一个Layer
Baselmage层:包含基本的系统函数库、环境变量、文件系统Entrypoint: 入口是镜像中应用启动的命令其它:在Baselmage基础上添加依赖、安装程序、完成整个应用的安装和配置 详情查看官网
九、例子基于Ubuntu镜像构建一个新的镜像运行一个java项目
1、创建docker-demo目录和Dockerfile文件并在其中编写如下
# 指定基础镜像
FROM ubuntu:16.04
# 配置环境变量JDK的安装目录
ENV JAVA_DIR/usr/local# 拷贝jdk和java项目的包
COPY ./jdk8.tar.gz $JAVA_DIR/
COPY ./docker-demo.jar /tmp/app.jar# 安装JDK
RUN cd $JAVA_DIR \ tar -xf ./jdk8.tar.gz \ mv ./jdk1.8.0_144 ./java8# 配置环境变量
ENV JAVA_HOME$JAVA_DIR/java8
ENV PATH$PATH:$JAVA_HOME/bin# 暴露端口
EXPOSE 8090
# 入口java项目的启动命令
ENTRYPOINT java -jar /tmp/app.jar
2、向docker-demo中导入文件 3、输入命令创建镜像
docker build -t javaweb:1.0 .
// 镜像名 版本 所在目录
4、创建容器
docker run --name web -p 8090:8090 -d javaweb:1.05、在页面访问 十、例子使用alpine创建镜像
1、修改dockerfile
# 指定基础镜像
FROM openjdk:8-alpine# 配置环境变量JDK的安装目录
COPY ./docker-demo.jar /tmp/app.jar# 暴露端口
EXPOSE 8090# 入口java项目的启动命令
ENTRYPOINT java -jar /tmp/app.jar2、构建镜像
docker build -t javaweb:2.0 .这个可以少几个步骤
十一、DockerCompose
1、作用
Docker Compose可以基于Compose文件帮我们快速的部署分布式应用而无需手动一个个创建和运行容器!Compose文件是一个文本文件通过指令定义集群中的每个容器如何运行。
十二、部署微服务集群
1、编写docker-compose.yml文件
version: 3.2services:nacos:image: nacos/nacos-serverenvironment:MODE: standaloneports:- 8848:8848mysql:image: mysql:5.7.25environment:MYSQL_ROOT_PASSWORD: 123volumes:- $PWD/mysql/data:/var/lib/mysql- $PWD/mysql/conf:/etc/mysql/conf.d/userservice:build: ./user-serviceorderservice:build: ./order-servicegateway:build: ./gatewayports:- 10010:100102、将java代码中的数据库和nacos地址都改为yml文件中的服务地址 3、在每个微服务的pom文件中都加上打包依赖 buildfinalNameapp/finalNamepluginsplugingroupIdorg.springframework.boot/groupIdartifactIdspring-boot-maven-plugin/artifactId/plugin/plugins/build
4、清理缓存 5、打包 6、在target目录中找到jar包并拷贝到对应目录 7、进入虚拟机将cloud-demo文件夹导入tmp 8、进入cloud-demo文件并运行
docker-compose up -d