Docker 安装与简单使用(例子为docker python环境) 文章目录Docker 安装安装与换源安装一个镜像获取别人的镜像或者 自己使用Dockerfile创建一个镜像我的“python”文件夹Dockerfile中的内容运行容器容器运行容器查看容器启停进入容器执行命令文件复制容器删除镜像相关命令容器与镜像状态检查常用命令速查进一步操作进入之前启动的容器退出容器但不停止容器导出环境(可以发给他人直接运行)加载环境将容器保存为镜像参考与更多如果使用pip命令建议在使用前换源Docker 安装注可能在windows中使用会报错但是我因为再此之前安装过WLS所以没有任何报错WTG: Windows10企业版中安装Docker老本版Docker安装在windows 中一般需要开启“启用或关闭Windows功能”中的 “Hyper-V”(注意冲突某些手机模拟器和老版本的VMware需要关闭此功能运行更新版本的docker已经用WSL2代替“Hyper-V”了)安装与换源下载其中服务端的没有界面下载之后点击安装即可安装完只后重启windows。注一台电脑上虚拟机好像不能与docker同时运行安装完点击Restart自动重启电脑打开后在设置里添加镜像加速源 Docker Engine https://registry.docker-cn.com{ registry-mirrors: [ https://registry.docker-cn.com, https://hub-mirror.c.163.com, https://ustc-edu-cn.mirror.aliyuncs.com, https://mirror.baidubce.com ], builder: { gc: { defaultKeepStorage: 20GB, enabled: true } }, experimental: false, features: { buildkit: false } }安装一个镜像获取别人的镜像去docker的镜像仓库https://hub.docker.com/比如直接搜索python进入想安装的镜像的界面点击tags,tags界面如下复制docker命令,拉取别人的镜像docker pull python:3.7.13在任何路径下shift鼠标右键运行powershell运行命令即可,运行完成只后即可在Docker软件中的Image部分看到新增的镜像pytorch的镜像或者 自己使用Dockerfile创建一个镜像我的“python”文件夹----python --||--Dockerfile|--requirements.txt|--test.pyDockerfile中的内容FROM python:3.7.13 WORKDIR ./ COPY requirements.txt ./ RUN pip install --no-cache-dir -r requirements.txt COPY . . CMD [ python, ./test.py ]requirements.txt为空test.pyfor i in range(100000): print(1)在python目录中,shift右键打开powershell,执行docker build -t test . # 就会像pull一样进行下载与创建镜像 docker run test注可在 https://hub.docker.com/_/python中“How to use this image”部分找到Dockerfile文件中的命令FROM python:3 WORKDIR /usr/src/app COPY requirements.txt ./ RUN pipinstall--no-cache-dir-rrequirements.txt COPY..CMD[python,./your-daemon-or-script.py]运行容器容器运行# 后台运行容器 docker run -d --name mycontainer nginx # 交互式运行容器 docker run -it --name mycontainer ubuntu /bin/bash # 映射端口 docker run -d -p 8080:80 --name web nginx # 映射目录 docker run -d -v /data:/app/data --name mycontainer nginx # 自动重启 docker run -d --restartalways --name mycontainer nginx # 指定环境变量 docker run -d -e NODE_ENVproduction nginx容器查看# 查看正在运行的容器 docker ps # 查看所有容器包括已停止 docker ps -a # 查看容器详细信息 docker inspect mycontainer # 查看容器日志 docker logs mycontainer # 实时查看日志 docker logs -f mycontainer # 查看容器资源占用 docker stats # 查看容器进程 docker top mycontainer容器启停# 启动容器 docker start mycontainer # 停止容器 docker stop mycontainer # 重启容器 docker restart mycontainer # 暂停容器 docker pause mycontainer # 恢复容器 docker unpause mycontainer # 强制终止容器 docker kill mycontainer进入容器执行命令# 进入运行中的容器推荐 docker exec -it mycontainer /bin/bash # 如果没有 bash使用 sh docker exec -it mycontainer /bin/sh # 在容器中执行单条命令 docker exec mycontainer ls -la # 以 root 用户进入 docker exec -u root -it mycontainer /bin/bash # 查看容器内环境变量 docker exec mycontainer env文件复制# 主机复制到容器 docker cp ./test.txt mycontainer:/app/ # 容器复制到主机 docker cp mycontainer:/app/test.txt ./ # 复制整个目录 docker cp ./data mycontainer:/app/docker ps -a # 列举所有容器默认只列举运行中的 找到CONTAINER ID # 运行结果 CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 3aa7b7b18f6f python:3.7.13 python3 30 minutes ago Up 30 minutes mystifying_meitner # 在powershell中运行命令 ## copy 主机-容器 docker cp test.py 3aa7b7b18f6f:/ ## copy 容器-主机 docker cp 3aa7b7b18f6f:/bin ./ # 用docker cp mystifying_meitner:/bin ./同样或将目录挂载到Docker挂载目录docker run-vD:/python:/mnt python:3.7.13# /mnt /为linux目录格式挂载目录docker run-vD:/python:/mnt python:3.7.13# -v 本地目录:/容器目录 镜像名称:镜像tag挂载目录有多种方式这只是一种方式# 解决闪退问题dockerrun-it--nametest-v**:/mnt-p5000:5000 node5000:latestps发现在这个编辑器中输入:/ 会变成 容器删除# 删除已停止的容器 docker rm mycontainer # 强制删除运行中的容器 docker rm -f mycontainer # 删除所有已停止的容器 docker container prune # 删除所有容器慎用 docker rm -f $(docker ps -aq)镜像相关命令# 查看镜像 docker images # 拉取镜像 docker pull nginx # 删除镜像 docker rmi nginx # 构建镜像 docker build -t myapp:latest .容器与镜像状态检查# 查看 Docker 版本 docker version # 查看 Docker 运行状态 sudo systemctl status docker # 启动 Docker sudo systemctl start docker # 设置开机启动 sudo systemctl enable docker # 查看 Docker 磁盘占用 docker system df # 清理无用资源 docker system prune常用命令速查操作命令运行容器docker run查看容器docker ps -a启动容器docker start停止容器docker stop重启容器docker restart进入容器docker exec -it查看日志docker logs -f查看详情docker inspect复制文件docker cp删除容器docker rm查看资源docker stats进一步操作进入之前启动的容器docker exec -it 容器名称 /bin/bashdocker exec -it 容器名称 /bin/sh # 如果容器没有 Bashdocker attach 容器名称 # 如果想连接到之前窗口中的主进程注意attach是连接容器主进程的终端而exec是在容器中创建一个新的 Shell 进程。退出容器但不停止容器Ctrl P Ctrl Q导出环境(可以发给他人直接运行)****/pythondockerimages#查看REPOSITORY TAG IMAGE ID CREATED SIZE python3.7.13 27599ef959712days ago 906MB ****/pythondocker save python-opython37.tar 然后在执行代码的路径下会出现一个python37.tar文件加载环境****/pythondocker load -i python37.tar将容器保存为镜像sudodockercommit 19971de1033d myubuntu:node25参考与更多https://www.urlos.com/docker/thread-89652-1-1.html 报错failed to solve with frontend dockerfile.v0: failed to create LLB definition: failed todorequest: Headhttps://registry.docker-cn.com/v2/library/python/manifests/3?nsdocker.io:unable to connect to106.14.52.175:443. Do you need an HTTP proxy? 解决https://www.jianshu.com/p/56241136130d Docker 创建paddlepaddle https://blog.csdn.net/sinat_41581976/article/details/121069031 【【Docker】Dockerfile用法全解析-哔哩哔哩】 https://b23.tv/a5JfHo7[windows端的portable版本需要安装virtual box](https://portapps.io/app/docker-toolbox-portable/)Docker 网络端口的映射:局域网文件传输写给孩子看的 Kubernetes 动画指南【中英字幕】如果使用pip命令建议在使用前换源python 换源 pip configsetglobal.index-url https://pypi.tuna.tsinghua.edu.cn/simple