码头容器未启动(码头启动)

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

docker run -d -p 52022:22 basickarl/docker-git-test

以下是命令:

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:~#

其实没什么好说的,我希望集装箱能够启动并保持运行:

root@basickarl:~# docker logs e4
root@basickarl:~#
241094 次浏览

您正在尝试运行 bash,这是一个交互式 shell,需要使用 tty 才能进行操作。使用 -d以“分离”模式运行这个命令实际上没有意义,但是可以通过将 -it添加到命令行来实现,这样可以确保容器有一个与之关联的有效 tty,并且 stdin保持连接:

docker run -it -d -p 52022:22 basickarl/docker-git-test

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

如果您试图运行像 sshd这样的服务,就不能简单地运行 service ssh start。这将(取决于您在容器中运行的分布)执行以下两个操作之一:

  • 它将尝试联系流程管理器(如 systemdupstart)来启动服务。由于没有运行服务管理器,这将失败。

  • 它实际上将启动 sshd,但它将在后台启动。这意味着(a) service sshd start命令退出,这意味着(b) Docker 认为您的容器已经失败,因此它将清除所有内容。

如果希望在容器中运行 只是 ssh,可以考虑像 这个这样的示例。

如果您想在容器内运行 sshd 及其他程序,您将需要调查某种类型的流程管理员。

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

为了在半天的搜索后做到这一点,它使用了:

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 的主目录中。

登录 mysql 之后可以使用:

mysql -u root -proot -h 127.0.0.1 -P3301

二手资料来源包括:

Iarks 在这篇文章中的回答是关键:)/

如何安装并使用 Ubuntu 16-04上的 docker

安装和使用 Mariadb-via-docker

Mariadb-and-docker-use-case-part-1

祝大家好运!