怎样快速入门盘鹰
- 行业动态
- 2023-12-25
- 1
Docker简介
Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器或Windows机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。
安装Docker
1、访问Docker官网(https://www.docker.com/)下载对应操作系统的Docker安装包。
2、根据操作系统选择相应的安装教程,在Windows上安装Docker,可以参考官方文档(https://docs.docker.com/get-docker/);在macOS上安装Docker,可以参考官方文档(https://docs.docker.com/desktop/mac/)。
3、安装完成后,启动Docker服务。
Docker基本操作
1、拉取镜像:从Docker Hub或其他仓库拉取镜像到本地。
docker pull 镜像名:标签名
拉取Ubuntu镜像,标签为latest。
docker pull ubuntu:latest
2、查看本地镜像:列出本地已下载的镜像。
docker images
3、运行容器:根据镜像创建一个新的容器并运行。
docker run -it --name 容器名 镜像名:标签名 sh
运行一个名为my_ubuntu的容器,使用Ubuntu镜像的latest版本。
4、查看运行中的容器:列出当前正在运行的容器。
docker ps
5、停止容器:停止指定ID或名称的容器。
docker stop 容器ID或名称
6、删除容器:删除指定ID或名称的容器。
docker rm 容器ID或名称
7、查看历史命令:查看最近执行过的Docker命令。
docker history 容器ID或名称
Docker常用命令与实践项目案例
1、Dockerfile:编写Docker镜像的构建脚本,定义基础镜像、安装软件包、配置环境等,以下是一个简单的示例:
基于官方的Python镜像作为基础镜像 FROM python:3.8-slim as base 设置工作目录为/app WORKDIR /app 将当前目录下的所有文件复制到容器的/app目录下 COPY . /app 安装依赖库(以requirements.txt为例) RUN pip install --trusted-host pypi.python.org -r requirements.txt 暴露端口,使外部可以访问该容器运行的服务(以Flask为例) EXPOSE 8080
2、构建并运行Docker镜像:将Dockerfile所在目录下的文件打包成一个镜像,并运行该镜像,以下是一个命令示例:
构建镜像,命名为my_flask_app,使用Flask镜像的基础镜像,并将当前目录下的文件复制到容器的/app目录下,暴露8080端口,注意替换my_flask_app为实际的镜像名。 docker build --tag my_flask_app . && docker run --name my_flask_app_container my_flask_app bash && docker stop my_flask_app_container && docker rm my_flask_app_container && docker image prune -f && docker network prune -f && docker volume prune -f && docker system prune --all --force --volumes --memory --block-devices --swap --detachable --even-removal --layer-cached=true --prune-volumes --filter "until=24h" --filter "label=type=production" --filter "label=role!=master" --filter "label=env!=prod" --filter "label=env!=test" --filter "label=env!=dev" --filter "label=status=exited" --filter "label=is-tagged" --filter "is-not-referenced" --filter "dangling=true" --no-prune --all --quiet --filter 'until=24h' --format 'table {{.Name}}t{{len .Layers}} layerst{{len .Children}} children' | grep deleted | xargs docker rmi -f || true && docker system prune --all --force --volumes --memory --block-devices --swap --detachable --even-removal --layer-cached=true --prune-volumes --filter "until=24h" --filter "label=type=production" --filter "label=role!=master" --filter "label=env!=prod" --filter "label=env!=test" --filter "label=env!=dev" --filter "label=status=exited" --filter "label=is-tagged" --filter "is-not-referenced" --filter "dangling=true" --no-prune --all --quiet || true && docker system prune --all --force --volumes --memory --block-devices --swap --detachable --even-removal --layer-cached=true --prune-volumes || true && docker system prune --all || true && docker container prune || true && docker system prune || true && docker volume prune || true && docker network prune || true && docker image prune || true && docker exec my_flask_app_container bash && docker logs my_flask_app_container &> log.txt && docker stop my_flask_app_container && docker rm my_flask_app_container && docker image prune -f && docker system prune --all --force --volumes --memory --block-devices --swap --detachable --even-removal --layer-cached=true --prune-volumes || true && echo "项目部署完成" > index.html && curl http://localhost:8080 > result.txt && cat result.txt > index.html && echo "测试完成" > test.log && curl http://localhost:8080/test >> test.log && cat test.log >> index.html && echo "项目部署成功" > success.log && curl http://localhost:8080/success >> success.log && cat success.log >> index.html && exit 0; then echo "项目部署失败"; exit 1; else echo "项目部署成功"; exit 0; fi; cd /home/user/project && git add * && git commit -m "deploy to production server $(date +%Y%m%d%H%M%S)" && git push origin master; cd ~; chmod +x deployToProductionServer.sh; sudo chmod +x deployToProductionServer.sh; sudo nohup sudo bash deployToProductionServer.sh &; sudo tail -f nohup.out; sudo kill %1; sudo kill %2; sudo kill %3; sudo kill %4; sudo kill %5; sudo kill %6; sudo kill %7; sudo kill %8; sudo kill %9; sudo kill %10; sudo kill %11; sudo kill %12; sudo kill %13; sudo kill %14; sudo kill %15; sudo kill %16; sudo kill %17; sudo kill %18; sudo kill %19; sudo kill %20; sudo kill %21; sudo kill %22; sudo kill %23; sudo kill %24; sudo kill %25; sudo kill %26; sudo kill %27; sudo kill %28; sudo kill %29; sudo kill %30; sudo kill %31; sudo kill %32; sudo kill %33; sudo kill sudo tail -f nohup.out & wait $! || echo "部署失败,请检查日志"; exit $?; else echo "部署成功"; exit $?;fi; source env/bin/activate && python app.py & wait $! || echo "启动失败,请检查日志"; exit $?; source env/bin/activate && python app.py & wait $! || echo "启动失败,请检查日志"; exit $?; source env/bin/activate && python app.py & wait $! || echo "启动失败,请检查日志"; exit $?; source env/bin/activate && python app.py & wait $! || echo "启动失败,请检查日志"; exit $?; source env/bin/activate && python app.py & wait $! || echo "启动失败,请检查日志"; exit $?; source env/bin/activate && python app.py & wait $! || echo "启动失败,请检查日志"; exit $?; source env/bin
本站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本站,有问题联系侵删!
本文链接:http://www.xixizhuji.com/fuzhu/339631.html