Docker:安装及其相关问题的解决、快速上手python程序、基本命令

官方网站:

dockerhub:https://hub.docker.com/

docker-destop:https://www.docker.com/products/docker-desktop/

导入:

如果你开发了一款软件,想要发布到云上给用户使用。那么你需要保证该用户的环境能够保证运行该软件。最简单地就是保证该用户的环境与你本地环境一致。此时我们会想到“虚拟机”,但是虚拟机需要模拟硬件来运行整个操作系统,不但体积臃肿、内存占用高,还会影响程序的性能。这时,我们引入docker来帮助我们。

docker在概念上与虚拟机非常类似,但轻量很多。

功能:

docker中一个环境就是一个容器。dockerfile,自动化脚本,主要用来创建镜像。

image,镜像,约等于一个虚拟机的快照,里面包含了要部署的应用程序和它关联的所有库。

通过镜像,我们可以创建许多个container,容器。容器互不影响,容器里面直接运行了应用程序。

镜像和容器的关系就像是类和实例的关系。

windows上的安装:

1、使用WSL2安装

请见其他相关教程。

2、使用Docker Desktop安装

2.1下载资源

使用官网下载docker-destop:https://www.docker.com/products/docker-desktop/

或者使用我上传的资源下载:【免费】DockerDesktop安装资源-CSDN文库

2.2问题:Docker Desktop Requires log out

打开DockerDesktop遇到“You need to log out of Windows,Then your "docker-users"membership will be taken into account“。

解决方法:点win11,然后点用户名,然后点注销。重启电脑后再次启动Docker Desktop图标,发现可以进入。

2.3问题:Docker Desktop is unable to detect a Hypervisor

解决方案:首先查看控制面板下的“启用或关闭Windows功能”里,是否有“Hyper-V”,有的话勾选即可。

如果没有Hyper v,见http://t.csdn.cn/8lm5k

2.4问题:Docker Desktop requires a newer WSL kernel version

解决方案:提示说“WSL不是最新版”,所以打开命令行,输入“wsl --update”进行更新即可。

3、安装成功

终于,我们打开了Docker(泪目)。

VSCode上的安装:

1、安装Docker插件拓展

2、新建自动化脚本DockerFile

FROM python:3.-slim-buster 
WORKDIR /app 
COPY .. 
RUN pip3 install -r requirements.txt 
CMD ["python3", "app.py"]

COPY <本地路径><目标路径>,第一个点代表根目录下的所有文件,第二个点表示当前的工作路径

RUN允许我们在创建镜像时运行任意的shell命令。

Pip install 来安装Python程序的所有关联。

CMD来指定当Docker容器运行之后要执行的命令

3、创建镜像

打开vscode终端,输入命令

docker build -t yourImageName .

-t 后面跟的参数yourImageName应该替换成你要创建的镜像的名字。

最后的.告诉docker应该在当前目录下寻找这个Dockerfile

4、启动容器

打开vscode终端,输入命令

docker run -p 80:50000 -d yourImageName

-p 后面跟的参数是本机端口:映射的docker容器的端口

-d 让容器在后台运行,这样容器的输出就不会直接显示在控制台上。

5、通过dockerdesktop动态监督

dockerdesktop可以查看程序的动态数据。

6、其他命令

列举所有的容器:docker ps

停止容器:docker stop <容器ID>

重启容器:docker restart <容器ID>

删除容器:docker rm <容器ID>

启动一个远程sell:docker exec -it <容器ID> /bin/bash

Volume数据卷:

概念:

类似一个在本地主机和不同容器中共享的文件夹。

挂载数据卷到某个容器上

docker run -dp 80:5000 -v yourImageName:/xxx/xxx yourImageName

-v 后面跟着的yourImageName:/xxx/xxx 是数据卷挂在的容器的路径。

最后的yourImageName 是数据卷要挂载到哪个容器上。

使用多个容器

1、新建docker-compose.yml

version: 3
services:
    web:
        build:
        ports:
            - "80:5000"
    db:
        image:  "mysql"
        environment:
            MYSQL_DATABASE: yourSQLname
            MYSQL_ROOT_PASSWORD: yourSQLpassword

2、运行所有容器

docker compose up -d

docker compose down 停止并删除所有容器,但不删除数据卷

docker compose down --volumes 停止并删除所有容器和数据卷

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

鸡鸭扣

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值