我想了解使用Dockerfile构建Docker镜像所涉及的执行步骤.我在下面列出了几个问题.请帮助我理解构建过程.
#from base image
FROM ubuntu:14.04
#author name
MAINTAINER RAGHU
#commands to run in the container
RUN echo "hello Raghu"
RUN sleep 10
RUN echo "TASK COMPLETED"
Run Code Online (Sandbox Code Playgroud)
用于构建映像的命令: docker build -t raghavendar/hands-on:2.0 .
Sending build context to Docker daemon 20.04 MB
Step 1 : FROM ubuntu:14.04
---> b1719e1db756
Step 2 : MAINTAINER RAGHU
---> Running in 532ed79e6d55
---> ea6184bb8ef5
Removing intermediate container 532ed79e6d55
Step 3 : RUN echo "hello Raghu"
---> Running in da327c9b871a
hello Raghu
---> f02ff92252e2
Removing …Run Code Online (Sandbox Code Playgroud) 我对docker容器的状态感到有点困惑,特别是状态为CREATED.
我知道当容器运行状态时,它显示如下:
root@labadmin-VirtualBox:~/RAGHU/DOCKER# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
1261afc2acc1 302fa07d8117 "/bin/bash" 43 minutes ago Up 43 minutes optimistic_thompson
Run Code Online (Sandbox Code Playgroud)
如果容器已停止,则显示如下:
root@labadmin-VirtualBox:~/RAGHU/DOCKER# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
935f902efac7 302fa07d8117 "/bin/bash" 44 minutes ago Exited (0) 44 minutes ago competent_golick
5eb1c2525e2e 302fa07d8117 "/bin/bash" 44 minutes ago Exited (0) 44 minutes ago friendly_saha
Run Code Online (Sandbox Code Playgroud)
我的困惑在于 docker将容器的状态显示为CREATED:
root@labadmin-VirtualBox:~/RAGHU/DOCKER# docker ps -a | grep -i …Run Code Online (Sandbox Code Playgroud) 我对java和groovy都很陌生.我在我的Windows 10笔记本电脑(64位)上安装了groovy 3.0,当试图运行groovy时收到以下警告:
>groovy -v
WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by org.codehaus.groovy.reflection.CachedClass (file:/C:/groovy-3.0.0-alpha-1/lib/groovy-3.0.0-alpha-1.jar) to method java.lang.Object.finalize()
WARNING: Please consider reporting this to the maintainers of org.codehaus.groovy.reflection.CachedClass
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release
Groovy Version: 3.0.0-alpha-1 JVM: 9.0.1 Vendor: Oracle Corporation OS: Windows 10
Run Code Online (Sandbox Code Playgroud)
而java版本是:
java --version
java 9.0.1
Java(TM) SE Runtime Environment (build 9.0.1+11)
Java …Run Code Online (Sandbox Code Playgroud) 试图了解docker网络,Docker自动创建以下网络:
# docker network ls
NETWORK ID NAME DRIVER SCOPE
67b4afa88032 bridge bridge local
c88f997a2fa7 host host local
1df2947aad7b none null local
Run Code Online (Sandbox Code Playgroud)
我知道桥接网络代表所有Docker安装中存在的docker0网络,从链接引用.
有人可以帮助我理解其他网络,主机和没有,如果可能的话,举例.
我能够从 json 文件将值写入 Vault:
# cat secrets.json
{ "value": "bGktzwatc" }
{ "value": "AGktzwatB" }
Run Code Online (Sandbox Code Playgroud)
在尝试通过读取 json 文件来创建新值时,Vault 仅读取文件中的第一个值:
# ./vault write secret/passwd1 @secrets.json
Success! Data written to: secret/passwd1
# ./vault read secret/passwd1
Key Value
--- -----
refresh_interval 768h0m0s
value bGktzwatc
Run Code Online (Sandbox Code Playgroud)
是否可以从文件中读取多个值并通过保管库写入不同的键?
我的要求是通过从文件中读取来为多个键添加值:
Key Value
--- -----
refresh_interval 768h0m0s
value bGktzwatc
Key Value
--- -----
refresh_interval 768h0m0s
value AGktzwatB
Run Code Online (Sandbox Code Playgroud) 首先,我正在努力获得如下所需的输出:
*********************************************************************
hello
*********************************************************************
Run Code Online (Sandbox Code Playgroud)
为实现这一点,我已将所需的输出分配给具有多行字符串的变量,并使用格式打印相同的变量.
$ cat varibale.py
decorator = """ **********************************************************************
{}
********************************************************************** """
print(decorator.format("hello"))
Run Code Online (Sandbox Code Playgroud)
输出:
**********************************************************************
hello
**********************************************************************
Run Code Online (Sandbox Code Playgroud)
上述方法的问题是第三行输出中的额外空格看起来很奇怪.
我能够通过以下方式实现这一目标:
$ cat varibale.py
decorator = """ **********************************************************************
{}
*********************************************************************
"""
print(decorator.format("hello"))
Run Code Online (Sandbox Code Playgroud)
输出:
**********************************************************************
hello
*********************************************************************
Run Code Online (Sandbox Code Playgroud)
但是这样我的代码看起来不太好,因为它没有跟随缩进.
请建议正确的方法来实现所需的输出.
有什么方法可以知道使用 python 线程模块正在运行哪些线程。使用以下代码,我可以获得线程名称、当前线程、活动线程数。
但我的疑问是 ACTIVE_THREADS 为 2,当前线程始终为“MainThread”。在后台运行的另一个线程可能是什么?
import threading
import time
for _ in range(10):
time.sleep(3)
print("\n", threading.currentThread().getName())
print("current thread", threading.current_thread())
print("active threads ", threading.active_count())
Run Code Online (Sandbox Code Playgroud)
主线程
当前线程 <_MainThread(MainThread, started 11008)>
活动线程 2
作为 Docker 的新手,我有一个基本问题,即为什么 Docker 使用从 32768 到 65535 的端口号?
为什么选择特定的范围?其他端口没有用吗?
有人可以帮助我更好地理解这一点..
演示了如何隐藏类的属性和方法来访问类外的隐藏变量
class hiding():
# class attribute, "__" befor an attribute will make it to hide
__hideAttr = 10
def func(self):
self.__hideAttr += 1
print(self.__hideAttr)
a = hiding()
a.func()
a.func()
#AttributeError: 'hiding' object has no attribute '__hideAttr'
print (a.__hideAttr)
Run Code Online (Sandbox Code Playgroud) 我试图了解Openshift中持久卷声明的不同访问模式.从这里找到以下信息
Access Mode CLI Abbreviation Description
ReadWriteOnce RWO The volume can be mounted as read-write by a single node.
ReadOnlyMany ROX The volume can be mounted read-only by many nodes.
ReadWriteMany RWX The volume can be mounted as read-write by many nodes.
Run Code Online (Sandbox Code Playgroud)
我知道PVC绑定到单个项目/命名空间,也可以扩展到不同的项目.
但这里的混淆是,"单节点"或"多节点"在这里意味着什么.例如,在RWO模式中,"The volume can be mounted as read-write by a single node".它指的是什么节点.
有人可以告诉我这些模式对于单个项目/命名空间的重要性.使用RWO的存储是否只能对一个应用程序或项目中的所有应用程序具有写入权限?
docker ×4
python ×3
containers ×1
dockerfile ×1
groovy ×1
java ×1
kubernetes ×1
multiline ×1
openshift ×1