根据我到目前为止阅读的教程,使用" docker run -d"将从图像启动一个容器,容器将在后台运行.这就是它的样子,我们可以看到我们已经有了容器ID.
root@docker:/home/root# docker run -d centos
605e3928cdddb844526bab691af51d0c9262e0a1fc3d41de3f59be1a58e1bd1d
Run Code Online (Sandbox Code Playgroud)
但如果我跑" docker ps",则没有任何回复.
所以我试过" docker ps -a",我可以看到容器已经退出:
root@docker:/home/root# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
605e3928cddd centos:latest "/bin/bash" 31 minutes ago Exited (0) 31 minutes ago kickass_swartz
Run Code Online (Sandbox Code Playgroud)
我做错了什么?我该如何解决这个问题?
我想用来docker-compose组合php和几个数据库(orientdb,neo4j等).然后进入php容器并使用shell执行命令.
单独地,我的所有容器都在游泳,当我把它们组合在一起时,它们都会运行.但是,我不能为我的生活弄清楚如何保持php容器活着,所以我可以进入它进行测试.
为简单起见,我只使用一个数据库:orient-db.
我的docker-compose.yml档案:
version: '2'
services:
php:
build: .
links:
- orientdb
orientdb:
image: orientdb:latest
environment:
ORIENTDB_ROOT_PASSWORD: rootpwd
ports:
- "2424:2424"
- "2480:2480"
Run Code Online (Sandbox Code Playgroud)
我的"php" Dockerfile:
FROM php:5.6-cli
ADD . /spider
WORKDIR /spider
RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/bin/ --filename=composer
RUN composer install --prefer-source --no-interaction
RUN yes | pecl install xdebug \
&& echo "zend_extension=$(find /usr/local/lib/php/extensions/ -name xdebug.so)" > /usr/local/etc/php/conf.d/xdebug.ini
Run Code Online (Sandbox Code Playgroud)
我试过(除其他外):
docker-compose up在一个终端然后docker attach在另一个终端tty …例如,如果我使用命令,docker run -it alpine /bin/sh
它将启动一个终端,之后我可以安装软件包和所有软件包。现在,当我使用exit命令时,它会返回到终端。(主要一)
那么如何再次访问同一容器?当我再次运行该命令时,我得到了一个新的高山。
请帮忙
尝试运行具有 cron 调度的 docker 容器。但是我不能让它输出日志。
我正在使用 docker-compose。
docker-compose.yml
---
version: '3'
services:
cron:
build:
context: cron/
container_name: ubuntu-cron
Run Code Online (Sandbox Code Playgroud)
定时/Dockerfile
FROM ubuntu:18.10
RUN apt-get update
RUN apt-get update && apt-get install -y cron
ADD hello-cron /etc/cron.d/hello-cron
# Give execution rights on the cron job
RUN chmod 0644 /etc/cron.d/hello-cron
# Create the log file to be able to run tail
RUN touch /var/log/cron.log
# Run the command on container startup
CMD cron && tail -F /var/log/cron.log
Run Code Online (Sandbox Code Playgroud)
cron/你好-cron
* * * * * …Run Code Online (Sandbox Code Playgroud) 我正在运行 Windows 10 专业版,安装了 docker 和 linux 容器。
使用 Visual Studio 2019,我创建了一个基本的 .net 核心 Web api 应用程序,并启用了 docker 支持(linux)。
我构建了解决方案,在输出窗口(视图 -> 输出或 Ctrl + Alt + O)中,我在“显示输出自”下拉列表中选择了“容器工具”。滚动到最后(参见下图中的滚动条),您将看到 docker run 命令的入口点选项,如下所示。
--entrypoint tail webapp:dev -f /dev/null
Run Code Online (Sandbox Code Playgroud)
您的 ref 的整个 docker run 命令如下。
docker run -dt -v "C:\Users\MyUserName\vsdbg\vs2017u5:/remote_debugger:rw" -v "D:\Trials\Docker\VsDocker\src\WebApp:/app" -v "D:\Trials\Docker\VsDocker\src:/src" -v "C:\Users\UserName\.nuget\packages\:/root/.nuget/fallbackpackages" -e "DOTNET_USE_POLLING_FILE_WATCHER=1" -e "ASPNETCORE_ENVIRONMENT=Development" -e "NUGET_PACKAGES=/root/.nuget/fallbackpackages" -e "NUGET_FALLBACK_PACKAGES=/root/.nuget/fallbackpackages" -P --name WebApp --entrypoint tail webapp:dev -f /dev/null
Run Code Online (Sandbox Code Playgroud)
所以我的问题是这个“尾巴”是什么。我看到了两个这样的问题(这个和这个),但没有得到太多。同样从这里开始,tail 似乎是一个 linux 命令(我正在运行一个 linux 容器)但是它在这里做什么? …
docker ×5
alpine-linux ×1
cron ×1
linux ×1
logging ×1
orientdb ×1
php ×1
provisioning ×1
tty ×1