在docker容器中使用systemctl启动ssh
我是码头工人的新手; 我已经从Hub中提取了CentOS 7图像并运行了它 我需要通过ssh从主机连接到docker容器(CentOS 7) 使用在docker容器中使用systemctl启动ssh,docker,docker-compose,Docker,Docker Compose,我是码头工人的新手; 我已经从Hub中提取了CentOS 7图像并运行了它 我需要通过ssh从主机连接到docker容器(CentOS 7) 使用docker inspect container id 我已使用 initscripts systemd.x86_64 systemd-libs.x86_64 open-ssh firewalld net-tools 当我试图启动防火
docker inspect container id
我已使用
initscripts
systemd.x86_64
systemd-libs.x86_64
open-ssh
firewalld
net-tools
当我试图启动防火墙为ssh打开端口时(22)
也试过,
[root@a6f3e3eb095c ~]# /usr/lib/systemd/systemd --system &
[1] 353
[root@a6f3e3eb095c ~]# systemd 219 running in system mode. (+PAM +AUDIT +SELINUX +IMA -APPARMOR +SMACK +SYSVINIT +UTMP +LIBCRYPTSETUP +GCRYPT +GNUTLS +ACL +XZ -LZ4 -SECCOMP +BLKID +ELFUTILS +KMOD +IDN)
Detected virtualization xen.
Detected architecture x86-64.
Welcome to CentOS Linux 7 (Core)!
Set hostname to <a6f3e3eb095c>.
Cannot determine cgroup we are running in: No such file or directory
Failed to allocate manager object: No such file or directory
[1]+ Exit 1 /usr/lib/systemd/systemd --system
[root@a6f3e3eb095c~]#/usr/lib/systemd/systemd——系统&
[1] 353
[root@a6f3e3eb095c~]#systemd 219在系统模式下运行。(+PAM+AUDIT+SELINUX+IMA-APPARMOR+SMACK+SYSVINIT+UTMP+LIBCRYPTSETUP+GCRYPT+GNUTLS+ACL+XZ-LZ4-SECCOMP+BLKID+ELFUTILS+KMOD+IDN)
检测到虚拟化xen。
检测到架构x86-64。
欢迎使用CentOS Linux 7(Core)!
将主机名设置为。
无法确定正在运行的cgroup:没有这样的文件或目录
分配管理器对象失败:没有此类文件或目录
[1] +出口1/usr/lib/systemd/systemd——系统
如何在docker容器内启动防火墙/ssh?如果使用docker CLI,则可以使用以下命令进入docker容器
docker exec -it containerId bash
我不知道如何ssh到docker容器中,但是如果您想在docker容器中执行基本操作,可以使用上面的docker命令。在docker容器中运行以下命令:
yum update -y glibc-common
yum install -y sudo passwd openssh-server openssh-clients tar screen crontabs strace telnet perl libpcap bc patch ntp dnsmasq unzip pax which
rpm -Uvh http://download.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
yum install -y hiera lsyncd sshpass rng-tools
service sshd start;
sed -i 's/UsePAM yes/#UsePAM yes/g' /etc/ssh/sshd_config;
sed -i 's/#UsePAM no/UsePAM no/g' /etc/ssh/sshd_config;
sed -i 's/#PermitRootLogin yes/PermitRootLogin yes/' /etc/ssh/sshd_config;
sed -i 's/enabled=0/enabled=1/' /etc/yum.repos.d/CentOS-Base.repo
mkdir -p /root/.ssh/;
rm -f /var/lib/rpm/.rpm.lock;
echo "StrictHostKeyChecking=no" > /root/.ssh/config;
echo "UserKnownHostsFile=/dev/null" >> /root/.ssh/config
echo "root:password" | chpasswd
(或)
只需在docker hub中使用ssh即可提取centos的docker映像
您可以通过使用。。。在那之后,docker exec的东西应该可以在容器中进行操作。如果您确实需要ssh或sftp容器,那么您可以使用my作为自己的容器,或者直接运行它: 如果使用官方软件并且您需要systemd,则在“systemd集成”一节中有关于如何启用该软件的说明 但是,根据以下情况: 我需要通过ssh从主机连接到docker容器(CentOS 7) 您可以使用在正在运行的(后台)容器中运行命令,因此,对于具有bash可用的图像,您可以从主机访问交互式tty并按如下方式运行bash-其中容器可以是名称或id:
docker exec --tty --interactive <container> bash
docker exec--tty--interactive bash
或
docker exec-ti bash
最后,不太可能需要在您的映像中安装防火墙软件包,因为运营商将决定从公开的端口发布哪些端口,并且您可以利用这些端口仅公开必要的面向公众的服务。您可能需要查看以下内容:from@jpetazzo.ok。如何使用
systemctl
在docker容器内启动应用程序我将@tgogos的注释翻了一番。很可能您不应该在容器内运行sshd、firewall或systemd。@soundarararajan.c您希望在容器内运行什么,为什么CMD或ENTRYPOINT不够?请使用service而不是systemctl[root@a6f3e3eb095c/]#sshd服务启动;重定向到/bin/systemctl start sshd.service无法获得D总线连接:不允许操作
docker exec --tty --interactive <container> bash
docker exec -ti <container> bash