问题描述: centos 启动一个容器添加了-d 参数,但是docker ps 或者docker ps -a查看却已经退出了 shell>docker run -d centos a44b2b88559b68a2221c9574490a0e708bff49d88ca21f9e59d3eb245c7c0547...shell>docker ps 退出原因 1、docker容器运行必须有一个前台进程, 如果没有前台进程执行,容器认为空闲,就会自行退出 2、容器运行的命令如果不是那些一直挂起的命令( 运行top...,tail、循环等),就是会自动退出 3、这个是 docker 的机制问题 解决方案 方案1: 网上有很多介绍,就是起一个死循环进程,让他不停的循环下去,前台永远有进程执行,那么容器就不会退出了,以...,还占用一个终端 方案2: shell>docker run -dit centos /bin/bash 添加-it 参数交互运行 添加-d 参数后台运行 这样就能启动一个一直停留在后台运行的Centos...shell>docker ps 容器运行起来了 进入容器的方法: 使用exec,不要使用attach命令 attach命令就是使用现有终端,如果你要退出容器操作,那么bash结束,容器也就退出了
3.0、启动 docker 容器 1、Docker修改容器名 #先查看原来的容器名 docker ps -a #查看所有的容器 #找到你要修改的容器名 docker rename 原容器名 要修改的容器名...2、docker 修改修改端口、映射地址… 下面是运行中的 docker 环境,因为实际环境,我们需要修改 docker 映射端口,现在是 8088 端口,我们要修改他改成 8099 端口。...2.1、先找容器的 ID 我们可以看到 b0cfb0daff30,先记住他,然后停止容器; 2.2、停止 docker 容器 docker stop abc(容器名) 2.3、停止 docker systemctl...2.9、查看端口是否修改 这里看到端口已经被修改,我们就可以启动容器了 3.0、启动 docker 容器 docker start abc(容器名) 注意!!!...docker 修改完映射端口后,docker 的 ip 可能会发生变化。
你好,我是征哥,我相信不少人都会遇到这样的问题,容器本来运行的好好的,可是有一天报错退出了,重启容器依然报错,因为默认命令会崩溃,这意味着我无法启动容器后使用 docker exec。...entrypoint[1],在构建镜像的时候,我们可以使用 CMD 或者 ENTRYPOINT 配置容器启动时的执行命令,但这两者有所不同: CMD 命令设置容器启动后默认执行的命令及其参数,但 CMD...sudo docker pull python 然后启动一个后台永不退出的容器: sudo docker run --name mypython -dt python /bin/bash 然后就可以随意使用...install requests 这样使用 Python 容器,不修改系统的一个文件,安全环保,不想用了,直接停止删除容器,再删除镜像。...最后的话 以上就是自己使用 Docker 经常遇到的问题及解决方法。
当前是访问 9999 端口 删除原有容器,重新创建新的容器 删除容器 docker rm -f 容器ID/名字 重新创建容器 docker run -d -p 8888:8080 -i --name tomcat7...tomcat:7 重新指定需要映射的端口 优点 简单粗暴,在测试环境用的更多 缺点 如果是数据库、服务器相关的容器,创建新的容器,又得重新配置相关东西了 修改容器配置文件(重点) 暂停 Docker...里的端口,但实操了一遍并不需要 config.v2.json 优点 直接操作配置文件没有副作用,算简单 缺点 需要暂停 Docker 服务,会影响其他正常运行的 Docker 容器 使用 docker...commit 命令 停止 Docker 容器 docker stop tomcat7 使用 commit 构建新镜像 docker commit tomcat7 new_tomcat7 docker images...优点 无需停止 Docker 服务,不影响其他正在运行的容器 旧容器有的配置和数据,新容器也会有,不会造成数据或配置丢失,对新旧容器都没有任何影响 缺点 需要生成新的镜像和容器,管理镜像和容器的时间成本会上升
可以删除原有容器,重新创建新的容器 优点 简单粗暴,在测试环境用的更多 缺点 如果是数据库、服务器相关的容器,创建新的容器,又得重新配置相关东西了 2....修改容器配置文件(重点) 暂停Docker服务 systemctl stop docker 进入 Docker 容器配置文件目录下 cd /var/lib/docker/containers/ls 容器...ID 就是文件夹名称,可通过 docker ps -aq 来查看,不过这是缩写,对照起来看就行 修改hostconfig.json vim hostconfig.json 找到之前的端口,然后修改成我们想修改成什么的端口...重新启动Docker服务 systemctl restart docker 启动容器 docker start 容器ID或者名字 然后就可以通过新的端口进行访问了 优点 直接操作配置文件没有副作用,算简单...缺点 需要暂停 Docker 服务,会影响其他正常运行的Docker容器
Docker 建立好容器后,配置并不容易修改,本文记录修改建立好的容器的端口映射的方法。...背景 已经建立好了容器,配置了初始端口映射信息 但是端口映射错了/多了/少了,需要调整容器的端口映射 具体方法 方法一 将当前容器通过 docker commit 命令生成镜像 通过镜像重新建立容器,建立时使用正确的端口映射...好处是包治百病,正规途径 缺点就是过程繁琐,不够优雅 方法二 端口映射等容器信息都是存在某个地方,通过配置文件管理的,我们仅需修改配置文件的端口信息即可完成改写 以我当前的 nginx.../tcp nginx 当前容器名称 nginx,CONTAINER ID是5190850b4fcc 当前端口映射了 9443:443,现在我要添加一个 9442:442 的端口映射 停止容器 docker...stop nginx 停止 docker 服务 systemctl stop docker 进入文件夹 /var/lib/docker/containers/{CONTAINER ID} 和 CONTAINER
大家好,又见面了,我是你们的朋友全栈君。...修改 docker 中 MySQL 配置文件,在 mysqld 项目下新增 port=3307 配置 [mysqld] port=3307 federated max_connections = 200.../usr/bin/env bashconfig_dir=`pwd` PASSWORD=123456 docker run -d –net host –name solo_mysql\ -p 3307:3307...\ –restart=always \ -v {config_dir}/mysqld.cnf:/etc/mysql/mysql.conf.d/mysqld.cnf \ mysql:5.7 exit 若容器已经生成...,则先停止宿主机 MySQL 服务,之后启动容器,通过 docker exec 命令进入容器中,修改 /etc/mysql/mysql.conf.d/mysqld.cnf 配置文件即可 发布者:全栈程序员栈长
事实上,docker的容器是非常轻量的,它并没有自己的网络,要想访问容器的端口,需要进行端口映射,将容器的某端口映射到宿主机的端口,客户端连接时,只要与宿主机的端口进行连接就可以了。...,即宿主机的ip地址、宿主机的端口、容器的端口,三者之间使用:分隔。...一般的,可以将宿主机的ip地址省略,只写宿主机的端口:容器的端口即可。...就将容器的5000端口映射到了宿主机的5001端口,使用: telnet 127.0.0.1 5001 即可与容器中的服务器进行连接。...要想结束容器,可以使用docker kill 容器ID命令。
还记得【One by one系列】一步步学习docker(三)——实战部署dotnetcore中遇到的问题么?容器内部启动始终是80端口,并不由命令左右。...1.Kestrel配置 ASP.NET Core项目使用Kestrel作为默认的web服务器。.../shared/Microsoft.AspNetCore.App \ && rm aspnetcore.tar.gz “ 基于.net core基础镜像 运行命令,下载asp.net core...中指定了应用终结点URL ENV ASPNETCORE_URLS=http://+:80 所以你想修改默认端口,在你的Dockerfile添加如下,修改默认值即可: ENV ASPNETCORE_URLS...Docker容器的最佳实践是一个容器只运行一个进程,意味着一个容器就暴露一个端口,所以去修改默认端口没有很大的必要性。这里对其问题溯源只是作为一个了解.
示例:以下是一个简单的示例,演示如何使用现有的nginx镜像创建一个运行中的容器,并将容器的80端口映射到主机的8080端口: docker run -d -p 8080:80 nginx 在这个示例中...,-d参数表示以后台模式运行容器,-p 8080:80指定将容器的80端口映射到主机的8080端口,nginx是要使用的镜像名称。...二、管理Docker容器 2.1 启动和停止容器 启动和停止容器是使用 Docker 运行容器时常见的操作。...例如: docker run -d 这会在后台模式下启动一个新容器。 停止容器 停止运行中的容器:如果容器正在运行,可以使用 docker stop 命令来停止它。...,它使用了 Nginx 镜像,并将主机的 8080 端口映射到容器的 80 端口。
需要启动systemd进程 --privileged[需要启动systemctl] docker run --privileged -tdi -p 8080:80 centos7-sshd-httpd-php56...init docker inspect 容器id |grep IPAddress -v 指的是挂载卷,这样可以持久性保存数据 -d 指明用哪个images --name 主机名称 init 也是为了配合...privileged而写 主机部分 带上link的 让主机连接mysql数据的容器 docker run --privileged --link mysql.5.7.21:db -ti -d -p... -ti -d -p 8080:80 -v /mydata:/var/www/html centos7-sshd-httpd-php56 init 指定名称[给主机指定个有意义的名称,要不名字是随机分配的.../www/html centos7-sshd-httpd-php56 init 数据库部分[MYSQL_ROOT_PASSWORD=Nzy19970502 指定root的密码] docker run
目录 Docker容器和KVM虚拟化 Docker的安装和使用 基于Docker的漏洞复现环境Vulhub的使用 Docker容器和KVM虚拟化 Docker 容器是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中...简单的说,容器就是在隔离环境运行的一个进程,如果进程停止,容器就会销毁。隔离的环境拥有自己的系统文件,IP地址,主机名等。...-d:让容器在后台运行 -P:将容器内部使用的网络端口映射到我们使用的主机上 -p:自定义端口映射,如 -p 8002:80,意思就是将容器的80端口映射到宿主机的8002...,删除容器前需停止该容器 docker rm `docker ps -aq` #删除全部容器 当启动容器后, 这里会有一个端口映射,此时我们访问宿主机的 9001...的使用 基于Docker的漏洞复现环境Vulhub的使用 vulhub的地址:https://vulhub.org Vulhub是一个基于 docker 和docker-compose 的漏洞环境集合
注意: 宿主机的一个端口只能映射到容器内部的某一个端口上,比如:8080->80之后,就不能8080->81 容器内部的某个端口可以被宿主机的多个端口映射,比如:8080->80,8090->80,8099...->80 1)启动容器时,选择一个端口映射到容器内部开放端口上 -p 小写p表示docker会选择一个具体的宿主机端口映射到容器内部开放的网络端口上。...-P 大写P表示docker会随机选择一个宿主机端口映射到容器内部开放的网络端口上。...选择宿主机具体的8088端口映射到容器内部的80端口上了,访问http://localhost/8088即可 容器my-nginx2启动时使用了-P,选择宿主机的一个随机端口映射到容器内部的80端口上了...`docker ps -a -q` 启动的容器也会包括上面报错的容器,重启docker后,该容器就能正常启动和使用了!
1、通过 docker inspect CONTAINERID | grep Address 查看容器的ip [root@master ~]# docker inspect deadfda1b35d...172.17.0.3 8788 Trying 172.17.0.3... telnet: connect to address 172.17.0.3: Connection refused 3、启动容器时...,已经映射端口,所以不存在是因为没有-p映射的问题 docker run -it -v /root/soft/docker/lunwen/:/app/ -p 127.0.0.1:8788:8788...--privileged=true 6d64501af04c /bin/bash 4、通过docker ps -a查看,端口映射也是对的 [root@master ~]# docker ps -a...ago Up 7 minutes 127.0.0.1:8788->8788/tcp unruffled_cori 5、最终发现,flask启动时,设置的ip
之前写过一篇 vagrant + virtualbox搭建一个可移动的开发环境,现在有了更好的选择,基于docker的php开发环境 拥有前者所有的优点 https://github.com/chudaozhe
修改nginx的默认端口号 一般来说,nginx默认使用的是80端口号,但是狗血的是服务器上80端口号被占用了,而且使用80端口号的服务还不能停,这就要换端口号了。...docker run --name nginx -p 8089:8089 -d nginx 直接运行的时候换成8089端口号,虽然能够运行容器但是外部仍然无法访问。...解决方案 1、进入docker 容器 docker exec -it 容器名 /bin/bash 我的容器名字就叫做nginx 因此进入docker容器内部命令为 docker exec...-it nginx /bin/bash 2、查看nginx 启动的配置文件,默认在容器的/etc/nginx/conf.d/default.conf 3、因为docker 容器内部没有vi编辑器...4、docker cp nginx:/etc/nginx/default.conf /home/ 修改nginx启动的端口号为8089,只需要将default.conf中的listen配置改成8089
关闭容器不会删除容器文件,只是容器停止运行罢了 # 列出本机正在运行的容器 docker container ls # 列出本机所有容器,包括终止运行的容器 docker container ls -...EXPOSE 3000:将容器 3000 端口暴露出来, 允许外部连接这个端口。 FROM node:16.15.0 COPY ....docker image ls 生成容器 p参数:容器的 3000 端口映射到本机的 8000 端口。...这里是启动 Bash,保证用户可以使用 Shell docker container run -p 8000:3000 -it react-commentlist:v0.1 /bin/bash 可以在后面输入...容器退出 Ctrl + c 停止 Node 进程 Ctrl + d (或 exit)退出容器
前言: 在默认情况下,当 Docker 守护进程终止时,它将关闭正在运行的容器。不过,我们可以配置该守护进程,以便在该守护进程不可用时容器仍在运行。这种功能称为实时恢复。...实时还原选项有助于减少由于守护进程崩溃、计划中断或升级而导致的容器停机时间。...$(pidof dockerd) 3.检查上面的配置是否成功 docker info | grep -i live 4.重启Docker,此时重启Docker时就容器就不会停止了 systemctl...: true 5.重启Docker,验证容器是否会停止 [root@localhost ~]# systemctl restart docker #重启docker [root@localhost...后,上面在运行的两个容器的运行时间分别为1小时、32分钟,容器并没有在我们重启Docker时停止,而是一直保持运行状态 。
相比于其他部署工具,Kolla 完全革新地使用了 Docker 容器技术,将每一个 OpenStack 服务运行在不同的 Docker 容器中。...升级只需要三步:拉取新版本的容器镜像,停止老版本的容器服务,启动新版本的容器。回滚也不需要重新安装包,直接启动老版本的容器服务就行,非常方便。...来实现基于 Docker 容器的 OpenStack 服务全生命周期管理,如安装、升级、回滚、迁移等。 在部署 Docker 容器时,默认的网络配置都是 Host 模式。...Kolla项目,及其相关的其他项目,如下: Kolla 项目:负责Docker build OpenStack每个服务,如 nova-compute 容器等; Kolla-Ansible 项目:使用 Ansible...简言而之,Kolla 就是 OpenStack 社区的一个用于Docker build容器化 OpenStack 服务的项目,最后,使用其他的社区项目,即 kolla-ansible 或者 kolla-kubernetes
案例分为四个部分,第一部分是手动部署一个mezzanine站点;第二部分是通过ansible来部署mezzanine;第三部分是使用角色来重写第二部分的代码;第四部分则是ansible与Docker一起使用的效果...(注: mezzanine是一个基于django的CMS系统,有点类似wordpress,官网地址在这里 ,不过我们的重点是ansible来部署它,而不是去深究它自身的运行机制)。...我们希望WSGI进程以守护进程的方式运行,同时能够很方便的控制启动,停止和重启等。使用一个服务管理工具是很方便的,在接下来的实例中我们采用supervisor作为服务管理工具。...另外要注意的是,docker模块在ansible新版本中已经不推荐使用了,取而代之的是docker_container, docker_image模块。...如果要设置docker容器的端口映射,可以用ports参数,如nginx容器。 2)挂载数据卷可以直接用 volumes_from 指定数据卷的名字即可。 3) 要关联各个容器,可以用links参数。
领取专属 10元无门槛券
手把手带您无忧上云