首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Docker容器未启动(docker启动)

Docker容器未启动(docker启动)
EN

Stack Overflow用户
提问于 2015-04-30 09:46:02
回答 2查看 204K关注 0票数 62

我使用以下命令创建了容器:

代码语言:javascript
复制
docker run -d -p 52022:22 basickarl/docker-git-test

以下是命令:

代码语言:javascript
复制
root@basickarl:~# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
root@basickarl:~# docker ps -a
CONTAINER ID        IMAGE                              COMMAND             CREATED             STATUS                           PORTS               NAMES
e4ac54468455        basickarl/docker-git-test:latest   "/bin/bash"         7 minutes ago       Exited (0) 26 seconds ago                            adoring_lumiere     
22d7c5d83871        basickarl/docker-git-test:latest   "/bin/bash"         2 hours ago         Exited (127) About an hour ago                       thirsty_wright      
root@basickarl:~# docker attach --sig-proxy=false e4
FATA[0000] You cannot attach to a stopped container, start it first 
root@basickarl:~# docker start e4
e4
root@basickarl:~# docker attach --sig-proxy=false e4
FATA[0000] You cannot attach to a stopped container, start it first 
root@basickarl:~# 

真的没什么好说的,我希望容器能启动并保持upp。以下是日志:

代码语言:javascript
复制
root@basickarl:~# docker logs e4
root@basickarl:~# 
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-04-30 09:58:11

您正在尝试运行bash,这是一个需要tty才能运行的交互式外壳程序。使用-d在“分离”模式下运行它并没有什么实际意义,但您可以通过将-it添加到命令行来实现这一点,这将确保容器具有与其关联的有效tty,并且stdin保持连接:

代码语言:javascript
复制
docker run -it -d -p 52022:22 basickarl/docker-git-test

在启动分离的容器时,您通常会运行某种长期的非交互式进程(如sshd、web服务器、数据库服务器或进程管理器,如systemdsupervisor)。

如果您正在尝试运行像sshd这样的服务,则不能简单地运行service ssh start。这将--取决于您在容器中运行的发行版--做以下两件事之一:

  • 它将尝试联系进程管理器,如systemdupstart来启动该服务。因为没有服务管理器在运行,所以这将失败。
  • it将实际启动sshd,但它将在后台启动。这意味着(a) Docker命令退出,这意味着(b) service sshd start认为您的容器已经失败,因此它将清理所有内容。

如果只想在容器中运行ssh,可以考虑this这样的示例。

如果您想在容器内运行sshd和其他进程,则需要调查某种进程管理程序。

票数 85
EN

Stack Overflow用户

发布于 2018-06-07 19:18:01

我需要的是在我的Ubuntu机器上的不同端口/3301/上使用Docker和MariaDb,因为我已经在3306上安装并运行了MySql。

要在半天搜索后执行此操作,请使用以下命令:

代码语言:javascript
复制
docker run -it -d -p 3301:3306 -v ~/mdbdata/mariaDb:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=root --name mariaDb mariadb

这将拉取带有最新MariaDb的镜像,创建名为mariaDb的容器,并在端口3301上运行mysql。所有数据都位于/mdbdata/mariaDb的home目录下。

登录mysql之后,可以使用以下命令:

代码语言:javascript
复制
mysql -u root -proot -h 127.0.0.1 -P3301

使用的资源包括:

本文/using -it -d中的Iarks答案是关键:) /

how-to-install-and-use-docker-on-ubuntu-16-04

installing-and-using-mariadb-via-docker

mariadb-and-docker-use-cases-part-1

祝大家好运!

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29957653

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档