当前位置:首页 > 行业动态 > 正文

怎样快速入门盘鹰

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
0