202203-01 docker容器退出错误码的步骤 有时有些docker容器执行一段时间后退出了,为了查明原因采用查看下docker容器退出的错误码,具体步骤如下:1、找出退出的容器,可以通过下面两种方式方式查找:dockerps--filter"status=exited"dockerps-a|grep容器名字2、执行dockerinspect容器id命令来查看退出的容器信息dockerinspect容器id,查看State部分 State部分展示了容器的状态,OOMKilled,ExitCode等信息,下面是docker常见ExitCodeExitCode0:... 继续阅读 >
202111-09 Docker容器的使用方法简单示例 目录一、拉取镜像二、运行镜像三、测试容器内的应用四、检查宿主机端口五、停止容器一、拉取镜像1.检测镜像是否存在[root@node1~]#dockersearchnginxNAMEDESCRIPTIONSTARSOFFICIALAUTOMATEDnginxOfficialbuildofNginx.15187[OK]jwilder/nginx-proxyAutomate... 继续阅读 >
202108-20 聊聊docker中容器与镜像的区别 什么是镜像?镜像可以看成是由多个镜像层叠加起来的一个文件系统(通过UnionFS与AUFS文件联合系统实现),镜像层也可以简单理解为一个基本的镜像,而每个镜像层之间通过指针的形式进行叠加。什么是容器?容器(container)的定义和镜像(image)几乎一模一样,也是一堆层的统一视角,唯一区别在于容器的最上面那一层是可读可写的。要点:容器=镜像+读写层,并且容器的定义并没有提及是否要运行容器。今天抛开原理,抛开底层。... 继续阅读 >
202103-30 使用docker更改容器内root密码的操作 1.在制作dockerfile的时候使用如下命令设置ssh密码RUNecho“root:root”|chpasswd2.现在需要在容器生成后更改容器内root密码使用dockerexec-itcentos7.5root:newpassword|chpasswd命令执行成功,但是密码更新失败。正确的方式如下:PASS='newpassword'&&echo-e“KaTeXparseerror:Expected'EOF',got'\n'atposition5:PASS\̲n̲PASS”|dockerexec-icentos7.5补充:宝塔dockerpullcentos... 继续阅读 >
202103-30 docker容器里面的root权限获取方法 首先你的container得正在运行可通过sudodockercontainerls或者sudodockerps查看容器的CONTAINERID最后执行命令(其中7509371edd48为上面查到的CONTAINERID)sudodockerexec-ti-uroot7509371edd48bash补充:解决非root用户没有权限运行docker命令的问题问题描述:”GotpermissiondeniedwhiletryingtoconnecttotheDockerdaemonsocketatunix:///var/run/docker.sock:Gethttp://%2Fvar%2Frun%2Fdocker.soc... 继续阅读 >
202103-24 docker容器下配置jupyter notebook的操作 docker容器下配置jupyternotebook,主要是为了编写python代码,更具体点是做深度学习的开发。jupyterweb形式最高效的使用方式就是部署在云上,不管是cpu云服务器还是gpu的云服务器,都能快速启动使用。而docker的出现又方便了很多在部署使用上。-安装dockerdocker分为dockerCE和dockerEE,一般使用dockerCE(社区版本)。docker可以在Linux(ubuntu、centos)、MacOS、Windows或者树莓派上安装。一般主要在linux下使用,我... 继续阅读 >
202103-24 Docker 实现容器端口绑定本地端口 今天遇到启动镜像之后,通过HTTP请求的的方式访问不了的一个小问题,下面来记录并分享下解决办法:常用的docker启动命令和解决办法如下所示:一、启动docker众所周知,启动容器的命令如下:dockerrun镜像名称二、绑定容器端口与本地端口由于启动容器之后,本地无法直接访问容器内的端口,故而需要将本地的端口与容器的端口做一个绑定操作,从而可以通过本地端口去访问容器,设置如下:dockerrun-p本地端口:容器端口镜像名称... 继续阅读 >
202103-23 Docker容器无法停止删除的解决方案 查找运行的容器iddockerps查找上面容器的物理位置cd/var/lib/docker/containerls-a#此处会显示所有容器的id,找出上面那个无法停止删除的id(8位)先停止docker服务servicedockerstop删除物理容器rm-rf/var/lib/docker/container/{上面找到的id}重启docker服务servicedockerstart补充:Docker退出容器不停止容器运行并重新进入正在运行的容器docker退出容器的方式(注此时处于运行的容器内部):启动容器1.退出容器并结束... 继续阅读 >
202103-23 docker容器访问宿主机的MySQL操作 背景:有一个flask项目提供接口,使用docker容器构建并且运行,MySQL在宿主机运行,需要在容器中可以让flask连接上宿主机的mysql使用ifconfig命令可以看到,有一个docker0和eth0,在docker容器中可以通过eth0的IP地址加上端口号(3306)这样就可以连接上宿主机的MySQL了;另外,nginx可以通过docker0的IP地址加上构建容器时指定的端口号进行访问容器。补充:docker的mysql容器运行正常,但是宿主机却连不上数据库,解决方法来啦doc... 继续阅读 >
202103-22 docker容器中无法获取宿主机hostname的解决方案 在nodejs环境中测试通过,其它语言同理,只需要使用获取环境变量的方法即可。思路:docker容器和宿主机环境是隔离的,但是可以在启动docker容器时将宿主机的主机名以环境变量的形式传入,代码在容器中获取该值即可。操作:dockerrun-d-p3000:3000--namemyTest-eHOST_Q=$(hostname)mytest:v1#使用-e参数传入环境变量,值为主机名如果使用yml文件启动:version:'3'services:mysql:image:mysql:v1container_name:... 继续阅读 >
202103-19 Docker容器从镜像恢复代码的操作步骤 有时候代码丢失了需要从容器运行的镜像中恢复出所需代码,此时仅需在容器运行的服务器进行简单的几步操作,就能提取出打包镜像时使用的代码查看所有容器:dockercontainerls-a根据容器id进入到指定容器:dockerexec-tiid/bin/bash拷贝容器内目录到服务指定文件夹:dockercontainercpid:/usr/local/tomcat/webapps/province-admin/home/test/province-admin经过以上3布就已经把容器内代码提取到了服务器指定目录,从服务... 继续阅读 >
202103-19 浅谈Docker run 容器处于created状态问题 在最近遇到的一次问题中,有这样一种现象:系统有一个测试脚本会不断的执行dockerrun命令来运行容器,在测试过程中发现有一个情况是,有时候容器没有完全被运行到"Up"状态,而是处于"created"状态,现象十分奇怪。上环境首先查看了"created"状态的容器,以及dockerd日志:(1)dockerd的日志中只有"postcreate"请求,但是居然没有收到该容器的"poststart"请求;(2)手动执行dockerstart是可以将此容器拉起到"Up"状态,说明容器... 继续阅读 >
202103-19 docker logs-查看docker容器日志的实现 通过dockerlogs命令可以查看容器的日志。命令格式:$dockerlogs[OPTIONS]CONTAINEROptions:--details显示更多的信息-f,--follow跟踪实时日志--sincestring显示自某个timestamp之后的日志,或相对时间,如42m(即42分钟)--tailstring从日志末尾显示多少行日志,默认是all-t,--timestamps显示时间戳--untilstring显示自某个timestamp之前的日志,或相对时间,如42m(即42分钟)... 继续阅读 >
202101-21 在docker容器中安装vi命令的简单操作 在使用docker容器时,有时候里边没有安装vim,敲vim命令时提示说:vim:commandnotfound,这个时候就需要安装vim,可是当你敲apt-getinstallvim命令时,提示:Readingpackagelists...DoneBuildingdependencytreeReadingstateinformation...DoneE:Unabletolocatepackagevim这时候需要敲:apt-getupdate这个命令的作用是:同步/etc/apt/sources.list和/etc/apt/sources.list.d中列出的源的索引,这样才能获取... 继续阅读 >
202011-29 完美解决Windows10下无法对docker容器进行端口访问的操作 解决Windows10下无法对docker容器进行端口访问(端口映射的问题)在Windows10系统服务器中安装了docker和docker-compose并尝试在其中运行Nginx服务,映射也做好问题:在主机的浏览器中,打开localhost:port无法访问对应的Web服务。问题解析原因:docker是运行在Linux上的,在Windows中运行docker,实际上还是在Windows下先安装了一个Linux环境,然后在这个系统中运行的docker。也就是说,服务中使用的localhost指的是这个Linux环境... 继续阅读 >
202011-25 docker容器内要启动两个进程时Dockerfile的实现代码 近期想做一个cron定时任务的docker,在Dockerfile中做如下定义FROMlibrary/alpine:latestRUNapk--updateaddrsyncopensshbashVOLUME["/data"]ADDstart.sh/CMD["/bin/bash","/start.sh"]在start.sh中用crontab加载定时任务run.cron,然后启动crond:/usr/bin/crontab/run.cron/usr/sbin/cronddockerbuildDockerfile后,采用dockerrun?namexxx-d运行容器,发现start.sh执行后容器就退出了,根本无法启动定时任务,... 继续阅读 >