docker輕折騰筆記

設(shè)置容器hostname

容器在創(chuàng)建之后不能通過修改hosts文件改變hostname,hostname命令也不可用,需要重新創(chuàng)建容器,在創(chuàng)建容器時(使用docker run命令),使用-h參數(shù)來表明hostname。
如我創(chuàng)建slave節(jié)點容器時,sudo docker run -h slave -it --name slave ubuntu /bin/bash
docker start命令沒有-h/-hostname參數(shù),因此不能修改正在運行的容器的hostname。

保存容器狀態(tài)(commit)

查看正在運行的容器sudo docker ps,查到要保存的container id,commit之:

sudo docker commit <container id> <image name>

sudo docker commit 641b8af48c92 slave

再次啟動容器,sudo docker run -h slave -it -v /home/zdt/Downloads/:/opt/downloads --name slave1 slave /bin/bash

snapshot1.png

環(huán)境變量的改動要放在~/.bashrc中。若放在/etc/profile里重啟容器會失效,需要再source一邊。

容器掛載本地目錄

貌似在docker run中有什么寫錯了就還是直接刪除實例好 = =

為了把本機文件放到container里,我嘗試了用ssh鏈接它。但是有人說ssh container不好,更好的方案是和本機共享文件夾,語法如下

sudo docker run -it -v /home/zdt/Downloads/:/opt/downloads --name slave ubuntu /bin/bash
(把本機的/home/zdt/Downloads文件夾和容器的/opt/downloas共享)

欣然去文件夾下ls的我遇到了permission denied錯誤無情打臉,原來是本機的selinux防火墻從中作梗(fedora),于是su -c "setenforce 0",臨時關(guān)閉防火墻,容器中即可訪問本機文件夾。(永久關(guān)閉防火墻見參考鏈接)

運行ubuntu鏡像容器

sudo docker run --name master -i -t ubuntu /bin/bash  

To run an interactive shell in the Ubuntu image:
$ docker run -i -t ubuntu /bin/bash
The -i flag starts an interactive container. The-t flag creates apseudo-TTY that attachesstdin andstdout.
To detach thetty without exiting the shell, use the escape sequence Ctrl-p +Ctrl-q . The container will continue to exist in a stopped stateonce exited. To list all containers, stopped and running, use thedocker ps -a command.

參考

Quickstart Docker Engine
Docker學(xué)習(xí)---掛載本地目錄
CentOS7中Docker文件掛載,容器中沒有執(zhí)行權(quán)限
Fedora關(guān)閉/禁用SELinux三種方法
docker hostname
Docker的save和export命令的區(qū)別

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容