docker如何啟動容器並執行容器內指令碼

2021-10-20 18:07:33 字數 803 閱讀 9489

1.問題描述:

啟動docker容器後,執行容器內指令碼

2.案例需求:

現在需要用docker起乙個centos7的環境,安裝乙個pyhton,跑乙個定時任務,當時執行指令碼。

3.解決:

開始嘗試 使用systemctl 啟動crond 執行pyhton專案指令碼,結果docker容器中沒有systemctl

注:如想在容器內使用systemctl,在啟動容器時需加許可權 如:docker run--privileged-idt -p 10028:8080  --name graph graph:v2/usr/sbin/init&& docker exec -it graph /bin/bash -c 'nginx && systemctl start mariadb ' && docker exec -i graph bash /data/knowledge_graph/graph.sh

第二次嘗試 寫乙個啟動crond 的指令碼,放到/etc/init.d目錄下,docker容器啟動後會執行該目錄下指令碼,但沒有生效

第三次 

寫乙個啟動crond 的指令碼,使用  docker exec -it 【容器名或id】bash 執行

docker run -idt --name green -v /data/log:/root/log green:latest && docker exec -it green bash /root/crondtask.sh
docker run 啟動容器,並執行容器中crondtask.sh

docker 安裝 mysql映象並啟動容器

啟動docker systemctl enable docker systemctl start docker 重啟docker sudo service docker restart 第一步 拉取 mysql 映象 docker pull mysql 8.0 注 不帶版本號是最新的 第二步 檢視本...

Docker 進入啟動容器

在使用 d引數時,容器啟動後會進入後台,使用者無法看到容器中的資訊,也無法進行操作。這個時候如果需要進入容器進行操作,有多種方法,包括使用官方的attach或exec命令,以及第三方的nsenter工具等。1 attach命令 attach命令是docker自帶的命令,命令格式為 docker at...

Docker宿主啟動容器mysql

使用docker官方映象安裝mysql服務 1 拉取mysql映象,採用網易加速位址 2 重新命名映象名 3 建立用於掛載的目錄 sudo mkdir my mysql datadir 用於掛載mysql資料檔案 sudo mkdir my mysql conf.d 用於掛載mysql配置檔案 su...