我在this procedure之后运行docker:
~/tt$ cd correct_so/
~/tt/correct_so$ ls
caculate.c caculate.h libcac.so
~/tt/correct_so$ gcc -shared -fPIC caculate.c -o libcac.so
~/tt/correct_so$ cd ..
~/tt$ cd wrong_so/
~/tt/wrong_so$ gcc -shared -fPIC caculate.c -o libcac.so
~/tt/wrong_so$ cd ..
~/tt$ gcc main.c -o main -I correct_so -L correct_so -lcac
~/tt$ ldd main
linux-vdso.so.1 => (0x00007fffd3dfe000)
libcac.so => correct_so/libcac.so (0x00007f1a70b7c000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f1a7079f000)
/lib64/ld-linux-x86-64.so.2 (0x00007f1a70d80000)
~/tt$ export LD_LIBRARY_PATH=wrong_so && ./main
1 + 2 = 6
1 + 2 = 6
1 + 2 = 6
^Z
[1]+ Stopped ./main
~/tt$ ldd main
linux-vdso.so.1 => (0x00007fff1abd9000)
libcac.so => wrong_so/libcac.so (0x00007fdb5523c000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fdb54e5f000)
/lib64/ld-linux-x86-64.so.2 (0x00007fdb55440000)
~/tt$ export LD_LIBRARY_PATH=correct_so
~/tt$ ldd main
linux-vdso.so.1 => (0x00007fffa11fe000)
libcac.so => correct_so/libcac.so (0x00007ffeda6b6000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f82f80bc000)
/lib64/ld-linux-x86-64.so.2 (0x00007f82f849b000)
~/tt$ fg
./main
1 + 2 = 6
^C
在最后一步,它会创建一个根提示符 $ sudo service docker start
$ docker pull epgg/eg
$ docker run -p 8081:80 --name eg -it epgg/eg bash
root@35f54d7d290f:~#
。
root@35f54d7d290f:~#
泊坞窗进程结束,容器内的Apache已死。 如何安全退出容器,如何重新进入码头工人 容器提示回来。
答案 0 :(得分:1)
运行以下命令时,它将执行2次操作。
$ docker run -p 8081:80 --name eg -it epgg/eg bash
理想情况下,您应该创建一个容器来运行apache-server作为主进程(默认为入口点或cmd)。
$ docker run -p 8081:80 --name eg -d epgg/eg
然后使用以下命令可以在正在运行的容器中输入
。$ docker exec -it eg bash
此处的容器名称例如 (请注意,由于您已经有一个名为“ eg”的容器,您可能需要先将其删除)
$ docker rm -f eg
答案 1 :(得分:1)
由于任何容器的目的都是启动/运行任何进程,因此该进程完成后,容器将停止/退出。因此,要继续在后台运行容器,容器中必须有一个活动进程。
您可以在运行容器以进行分离时使用 -d 速记 从终端这样的容器:
docker run -d -it --name {container_name} {image}:{tag}
但这并不保证可以在 背景,因此即使在这种情况下,容器也会在 过程结束了。
要在后台主动运行apache服务器,您需要使用 启动容器时 -DFOREGROUND 标志:
/usr/sbin/httpd -DFOREGROUND (for centOS/RHEL)
这将在后台运行您的apache服务。
在其他情况下,使您的服务以分离模式运行
只需传递/bin/bash
命令,这将保持bash
外壳在后台处于活动状态。
docker run -d -it --name {container_name} {image}:{tag} /bin/bash
无论如何,要退出正在运行的容器而不退出容器和进程,只需按: Ctrl + P + Q 。
要将容器再次连接到终端,请使用以下方法:
docker attach {container_name}