docker

解决点击Docker出现windows 正在查找bash.exe。如果想亲自查找文件,请点击“浏览”的问题

cmd中cd要到的文件名中有空格,可以加双引号

Windows中玩转Docker Toolbox之释放C盘

windows虚拟机下 安装docker 踩过的坑

docker删除为none的镜像

删除docker images版本标签为none的镜像

查看Docker容器的信息

运行:

docker run -p 8089:8089 -d --name audioclone audioclone:v1.0

后面是镜像的名字

查看容器:

docker ps -ldocker ps -a

docker ps -a --no-trunc

删除容器:

docker rm -v audioclone

进入容器交互:

docker exec -it 容器id bash

退出交互:

exit

查看容器修改:

docker diff 容器名

正在运行的容器导出为rar

docker export 容器id > xxx.tar

根据dockerfile生成镜像:

docker build -t audioclone:v1.0 .

Dockerfile 之 WORKDIR

将自己的镜像上传到dockerhub

// 先登录
docker login

docker tag audioclone:v1.0 1298495034/audioclone1.0

docker push 1298495034/audioclone1.0

修改docker容器以后,上传至dockerhub

修改已有docker容器中的内容

将宿主机文件拷贝到容器,不论容器是否启动,都会生效

server.py:宿主机的文件,当前目录找
audioclone1.0:/app/
audioclone1.0:容器的名字
/app/:存放在容器的哪个位置

docker cp server.py audioclone1.0:/app/

32555789dd00:容器id
1298495034/audioclone1.0:1.1: 镜像的名称:镜像的tag,可以就原来那个镜像,多打一个标签

拷贝以后提交修改

docker commit -m "描述内容" -a "author name" 32555789dd00 1298495034/audioclone1.0:1.1

push到dockerhub

因为之前是从dockerhub上下载的,所以应该有啥链接吧,所以这么写??而且小改动上传还是挺快的

docker push audioclone1.0:latest(如果之前没打标签就是latest)

dockerhub pull

docker pull 1298495034/audioclone1.0

docker容器和宿主机文件夹共享

-p: 端口映射
-d:后台运行
-v: 为实现文件共享 前面是宿主机文件夹
/share: 容器里面的文件夹

docker run -p 8089:8089 -d --name audioclone1.2 -v /root/home/userfiles/audios:/share 1298495034/audioclone1.0

查看已挂载目录

docker:如何查看容器的挂载目录

docker inspect container_name | grep Mounts -A 20

docker查看日志

[Docker学习]四,其他常用命令,后台启动容器,查看日志,查看进程等

问题

要学好docker啊

首先,我是通过dockerfile创建的镜像,这里面会利用requirements.txt来下载依赖,一旦缺少某些依赖,修改这个文件,就需要重新从头到尾重新下载requirements.txt的依赖(也许可以把多加的pip install单独写在dockerfile中,如果不多的话),这很慢,所以我在想,是否能够直接通过这个镜像创建容器,然后修改容器里的内容重新生成镜像,但是问题是我因为依赖不足,docker里面的程序是跑不起来的,这就导致了我无法启动它,启动了过一会就会关闭,我试过只有启动了才能到容器里面交互,进行依赖的下载

这里就有一种解决方案:
1、这种方案,可以一直运行,我还不是很懂,也许还有其他方案

docker run -p 8089:8089 audioclone1.0 audioclone:v1.0 /bin/bash -c 'while true;do sleep 1;done'

然后启动以后进入,下载相应的依赖,再将修改好的docker容器保存为新的镜像,但是问题就是,下次创建容器,会默认以

/bin/bash -c ‘while true;do sleep 1;done’

这种command方式运行,就不会按照dockerfile里面的配置运行,至于如何修改,我现在还没有解决方案

总结,就是这种方式创建的镜像,根据它run的容器都会有默认command运行,如果想改只能手动添加,比如

docker run -p 8089:8089 audioclone1.1 audioclone:v1.0 python server.py

docker查看日志(就是查看控制台输出吧)

查看docker运行中的命令行输出

这个是可以切换成前台

docker attach 容器id
docker logs -f -t id

docker容器安装vim

docker容器中安装vim

requirement

pip install pipreqs

自动生成requirements.txt

感觉这个虽然全部下载了,但是靠谱点

pip freeze > requirements.txt
pip install pipreqs
pipreqs .

flask docker

Flask + Docker 无脑部署新手教程

docker compose

docker-compose.yml的详细解释与说明
在这里插入图片描述
docker-compose.yml 配置文件编写详解

端口映射问题

如果没改mysql内部配置,里面的端口就是默认3306的,所以开放到外面的端口可自定义,但是3306不能改

  • 3307:3306

无法初始化sql表

grand语句写错了,我靠!!

mysql中grant all privileges on赋给用户远程权限
在这里插入图片描述

grant all PRIVILEGES on book_portal.* to 'root'@'%' identified by '123456';

dockerfile

Dockerfile文件全面详解

user

默认是以root身份执行的
警告:以“root”用户身份运行pip
Docker 容器中解决用户访问权限的问题
docker - 如何使用dockerfile添加用户?
USER 指定当前用户
[docker-compose] docker生成文件是root权限,修改docker容器的用户

暂时只能保证 切换用户成功,但是切换用户以后又有了权限问题

RUN useradd -ms /bin/bash username
USER username
ENV PATH="/home/username/.local/bin:${PATH}"

重启服务器后,某个docker容器不见了,如何恢复?

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

weixin_42955958

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

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

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

打赏作者

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

抵扣说明:

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

余额充值