[英]Execute script when docker container start
我希望啟動帶有“ centos:latest”圖像的容器,並應執行我的腳本。 腳本使用docker cp命令復制。
docker create --name centos1 centos:latest
docker cp . 5db38b908880:/opt ---> scripts are in current directory, hence .
docker commit centos1 new_centos1 --> now new_centos1 image has scripts
現在,我想使用要執行的腳本來啟動新容器:我嘗試了以下命令:
docker run -ti --rm --entrypoint "cd /opt && deploy_mediainfo_lambda.sh" new_centos1:latest
docker run -ti --rm new_centos1:latest "cd /opt && deploy_mediainfo_lambda.sh"
上面的兩個命令都失敗了:
docker: Error response from daemon: OCI runtime create failed: container_linux.go:296: starting container process caused "exec: \"cd /opt && deploy_mediainfo_lambda.sh\": stat cd /opt && deploy_mediainfo_lambda.sh: no such file or directory": unknown.
ERRO[0000] error waiting for container: context canceled
如果在啟動容器時使用了bash命令,則可以在容器內使用“ execuateble path” /“ execuatble name”運行腳本,但是在命令行上啟動容器時卻無法執行此操作
docker run -ti --rm new_centos1:latest bash
[root@c34207f3f1c4 /]# ./opt/deploy_mediainfo_lambda.sh
如果在下面的命令(直接調用可執行文件)下使用,則會出現路徑錯誤。
docker run -ti --rm new_centos1:latest "deploy_mediainfo_lambda.sh"
docker: Error response from daemon: OCI runtime create failed: container_linux.go:296: starting container process caused "exec: \"deploy_mediainfo_lambda.sh\": executable file not found in $PATH": unknown.
ERRO[0000] error waiting for container: context canceled
同樣不確定在啟動容器時從命令行設置$ PATH的情況。
我知道,使用Dockerfile可以實現,例如:
如何使用docker命令行實現它?
謝謝melpomene 。
這是我的bash腳本,用於在容器中自動執行腳本,在復制它們之后,全部使用docker命令。
# Start docker container
docker create --name mediainfo_docker centos:latest
# copy script files
docker cp . mediainfo_docker:/opt
# save container with the new image, which contains all scripts.
docker commit mediainfo_docker mediainfo_docker_with_scripts
# Now run scripts inside docker container
docker run -ti --rm mediainfo_docker_with_scripts:latest /opt/deploy_mediainfo_lambda.sh
由於deploy_mediainfo_lambda.sh是腳本,因此它的第一行是: #!/ bin / bash
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.