簡體   English   中英

碼頭集裝箱內部無法識別amc,aerospike

[英]amc, aerospike are not recognized inside docker container

我有docker ubuntu 16.04映像,並且正在其中運行aerospike服務器。

$ docker run -d -p 3000:3000 -p 3001:3001 -p 3002:3002 -p 3003:3003  -p 8081:8081  --name aerospike aerospike/aerospike-server

docker容器運行成功。

$ docker ps
CONTAINER ID        IMAGE                        COMMAND                
CREATED             STATUS              PORTS                                                      
NAMES
b0b4c63d7e22        aerospike/aerospike-server   "/entrypoint.sh asd"        
36 seconds ago      Up 35 seconds       0.0.0.0:3000-3003->3000-3003/tcp, 0.0.0.0:8081->8081/tcp   aerospike

我已經登錄到Docker容器

$ docker exec -it b0b4c63d7e22 bash
root@b0b4c63d7e22:/#

我列出了目錄-

root@b0b4c63d7e22:/# ls
bin  boot  core  dev  entrypoint.sh  etc  home  lib  lib64  media  mnt  opt  
proc  root  run  sbin  srv  sys  tmp  usr  var
root@b0b4c63d7e22:/#

我將目錄更改為bin文件夾並列出了命令

root@b0b4c63d7e22:/# cd bin
root@b0b4c63d7e22:/bin# ls
bash   dnsdomainname  ip          mount          readlink    systemctl                       
touch         zegrep
cat    domainname     journalctl  mountpoint     rm          systemd                         
true          zfgrep
chgrp  echo           kill        mv             rmdir       systemd-ask-
password            umount        zforce
chmod  egrep          ln          netstat        run-parts   systemd-escape                  
uname         zgrep
chown  false          login       networkctl     sed         systemd-inhibit                 
uncompress    zless
cp     fgrep          loginctl    nisdomainname  sh          systemd-machine-
id-setup        vdir          zmore
dash   findmnt        ls          pidof          sh.distrib  systemd-notify                  
wdctl         znew
date   grep           lsblk       ping           sleep       systemd-tmpfiles                
which
dd     gunzip         mkdir       ping6          ss          systemd-tty-ask-
password-agent  ypdomainname
df     gzexe          mknod       ps             stty        tailf                           
zcat
dir    gzip           mktemp      pwd            su          tar                             
zcmp
dmesg  hostname       more        rbash          sync        tempfile                        
zdiff

然后我要檢查服務-

root@b0b4c63d7e22:/bin# service amc status
amc: unrecognized service

Aerospike的官方Docker容器沒有將Aerospike Server作為守護程序運行,而是作為前台進程運行。 您可以在官方的github DOCKERFILE中看到這一點

AMC不是Aerospike的Docker映像的一部分。 在您選擇的環境中運行AMC取決於您。

最后,因為你還沒有創建一個自定義aerospike.conf文件,塞式服務器將只響應客戶的泊塢窗內部網絡上。 -p參數本身不足以將Aerospike的端口公開給客戶端,如果您希望從docker環境外部進行客戶端訪問,則還需要配置access-address 在以下網址了解有關Aerospike網絡的更多信息: https ://www.aerospike.com/docs/operations/configure/network/general

您可以為amc構建自己的Docker容器,以連接到在容器上運行的Aerospike。

這是AMC的示例Dockerfile。

cat Dockerfile 

FROM ubuntu:xenial

ENV AMC_VERSION 4.0.13 


# Install AMC server 


RUN \
  apt-get update -y \
  && apt-get install -y wget python python-argparse python-bcrypt python-openssl logrotate net-tools iproute2 iputils-ping \
  && wget "https://www.aerospike.com/artifacts/aerospike-amc-community/${AMC_VERSION}/aerospike-amc-community-${AMC_VERSION}_amd64.deb" -O aerospike-amc.deb \
  && dpkg -i aerospike-amc.deb \
  && apt-get purge -y




# Expose Aerospike ports
#
#   8081 – amc port
#
EXPOSE 8081 

# Execute the run script in foreground mode
ENTRYPOINT ["/opt/amc/amc"]
CMD [" -config-file=/etc/amc/amc.conf -config-dir=/etc/amc"]

#/opt/amc/amc -config-file=/etc/amc/amc.conf -config-dir=/etc/amc

# Docker build sample:
# docker build -t amctest .

# Docker run sample for running amc on port 8081
# docker run -tid --name amc -p 8081:8081 amctest
# and access through http://127.0.0.1:8081

然后,您可以構建圖像:

docker build -t amctest .
Sending build context to Docker daemon  50.69kB
Step 1/6 : FROM ubuntu:xenial
 ---> 2fa927b5cdd3
Step 2/6 : ENV AMC_VERSION 4.0.13
 ---> Using cache
 ---> edd6bddfe7ad
Step 3/6 : RUN apt-get update -y   && apt-get install -y wget python python-argparse python-bcrypt python-openssl logrotate net-tools iproute2 iputils-ping   && wget "https://www.aerospike.com/artifacts/aerospike-amc-community/${AMC_VERSION}/aerospike-amc-community-${AMC_VERSION}_amd64.deb" -O aerospike-amc.deb   && dpkg -i aerospike-amc.deb   && apt-get purge -y
 ---> Using cache
 ---> f916199044d8
Step 4/6 : EXPOSE 8081
 ---> Using cache
 ---> 06f7888c1721
Step 5/6 : ENTRYPOINT /opt/amc/amc
 ---> Using cache
 ---> bc39346cd94f
Step 6/6 : CMD  -config-file=/etc/amc/amc.conf -config-dir=/etc/amc
 ---> Using cache
 ---> 8ae4300e7c7c
Successfully built 8ae4300e7c7c
Successfully tagged amctest:latest

最后通過端口轉發到端口8081運行它:

docker run -tid --name amc -p 8081:8081 amctest
a07cdd8bf8cec6ba41ce068c01544920136a6905e7a05e9a2c315605f62edfce

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM