1 回答

TA貢獻(xiàn)1936條經(jīng)驗(yàn) 獲得超7個贊
我希望這應(yīng)該創(chuàng)建目錄,將容器中的默認(rèn) services.xml(連同 /opt/lib/my-app/lib/conf 中的所有其他文件)復(fù)制到該目錄中,以便我可以編輯它。
根據(jù)您上面所說,如果您的目標(biāo)是讓容器中的內(nèi)容彈出到主機(jī)并讓您有機(jī)會修改它們,那么我建議您使用命名卷。但是,host 中的文件夾將由 docker 自己管理,因此您需要找到它們所在的位置。
一個供您參考的最小示例:
docker-compose.yaml(在我的示例中,它位于文件夾中77
):
version: '3'
services:
? frontend:
? ? image: alpine
? ? command: "tail -f /dev/null"
? ? volumes:
? ? ? - my_data:/etc
volumes:
? my_data:
啟動服務(wù):
shubuntu1@shubuntu1:~/77$ docker-compose up -d
Creating network "77_default" with the default driver
Creating volume "77_my_data" with default driver
Creating 77_frontend_1 ... done
檢查命名卷在主機(jī)中的位置:
shubuntu1@shubuntu1:~/77$ docker ps
CONTAINER ID? ? IMAGE? ? ?COMMAND? ? ? ? ? ? ? ?CREATED? ? ? ? ? ? ?STATUS? ? ? ? ? PORTS? ? ?NAMES
6635aba545c9? ? alpine? ? "tail -f /dev/null"? ?14 minutes ago? ? ? Up 14 minutes? ? ? ? ? ? ?77_frontend_1
shubuntu1@shubuntu1:~/77$ docker inspect 77_frontend_1 | grep Source
? ? ? ? ? ? "Source": "/var/lib/docker/volumes/77_my_data/_data",
檢查容器中原件的內(nèi)容/etc/profile:
shubuntu1@shubuntu1:~/77$ docker exec 77_frontend_1 cat /etc/profile
export CHARSET=UTF-8
export.UTF-8
export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
export PAGER=less
export PS1='\h:\w\$ '
umask 022
for script in /etc/profile.d/*.sh ; do
? ? if [ -r $script ] ; then
? ? ? ? ? ? . $script
? ? fi
done
從主機(jī)修改腳本:
shubuntu1@shubuntu1:~/77$ sudo -s -H
root@shubuntu1:/home/shubuntu1/77# cd /var/lib/docker/volumes/77_my_data/_data
root@shubuntu1:/var/lib/docker/volumes/77_my_data/_data# echo 'echo "hello"' >> profile
/etc/profile在我們對主機(jī)進(jìn)行更改后再次檢查in 容器:
shubuntu1@shubuntu1:~/77$ docker exec 77_frontend_1 cat /etc/profile
export CHARSET=UTF-8
export.UTF-8
export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
export PAGER=less
export PS1='\h:\w\$ '
umask 022
for script in /etc/profile.d/*.sh ; do
? ? if [ -r $script ] ; then
? ? ? ? ? ? . $script
? ? fi
done
echo "hello"
我們可以看到echo "hello"我們在主機(jī)上添加的內(nèi)容已經(jīng)在容器中看到了。
添加回答
舉報