⑴ docker內執行reboot命令會重啟物理機嗎
運行機太
RUNBuild運行先於CMDENTRYPOINTBuild完RUN運行完再運行CMD或者ENTRYPOINT
ENTRYPOINTCMD同點於執行docker run參數傳遞式CMD指定命令docker run傳遞命令覆蓋例用CMD指定:
...
CMD ["echo"]
運行
docker run CONTAINER_NAME echo foo
CMD指定echo新指定echo覆蓋所終相於運行echo foo所終列印結:
foo
ENTRYPOINT容器名面所內容都參數傳遞給其指定命令(命令覆蓋)比:
...
ENTRYPOINT ["echo"]
運行
docker run CONTAINER_NAME echo foo
則CONTAINER_NAME面echo foo都作參數傳遞給ENTRYPOING指定echo命令所相於執行
echo "echo foo"
終列印結:
echo foo
另外DockerfileENTRYPOINT指定參數比運行docker run指定參數更靠前比:
...
ENTRYPOINT ["echo", "foo"]
執行
docker run CONTAINER_NAME bar
相於執行:
echo foo bar
列印結:
foo bar
Dockerfile能指定ENTRYPOINT指定效
執行docker run命令添加-entrypoint參數指定參數繼續傳遞給ENTRYPOINT例:
...
ENTRYPOINT ["echo","foo"]
執行:
docker run CONTAINER_NAME bar #注意沒echo
相於執行echo foo bar終結
foo bar
⑵ Docker啟動命令使用kubernetes上傳
docker的一些命令
docker run --name mysql5.7.26 -e MYSQL_ROOT_PASSWORD=3edc4rfv -d mysql:5.7.26
連接mysql
docker run -it --rm mysql mysql -hdockerip -uroot -p
查看docker ip
>docker inspect -f "{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}" d3420658daeb
https://stackoverflow.com/questions/17157721/how-to-get-a-docker-containers-ip-address-from-the-host
復制文件到docker 容器
docker cp xxx.sql d3420658daeb:/xxx.sql
根據dockerfile創建image
docker build -t air .
https://stackoverflow.com/questions/36075525/how-do-i-run-a-docker-instance-from-a-dockerfile
運行activemq
docker run --name="activemq" -it --rm -P webcenter/activemq:latest
運行redis
docker run --name redis -d redis
啟動zookeeper
docker run --name zookeeper --restart always -d zookeeper
⑶ docker 怎麼啟動容器的所有
docker如果安裝成功,會有一塊虛擬網卡,ip地址默認是172.17.42.1
用docker search centos6命令搜索githup中的容器
使用docker pull weepee/centos6下載容器到本地
使用docker images查看本地所有的容器
使用run命令啟動容器
/usr/bin/docker run -d -v /root:/root -p 81:80 -p 2222:22 -p 10050:10050 -p 10051:10051 centos6.5_zabbix:v1.3
一定要記住centos6.5_zabbix:v1.3就是第四步查詢到的名稱和版本號
81:80 前面的宿主機的埠,後面是docker中容器所開的埠,兩個埠之間是映射關系
docker ps 查看運行狀態的容器
如果提交修改用docker commit 859549d3f157命令 859549d3f157就是使用docker ps查詢到的CONTAINER ID
⑷ docker啟動容器命令
它的一個啟動容器的命令基本上都是可以進行相應參考的,所以說這種情況下一定要選擇一個經常用的命令才行。
⑸ 如何啟動一個已經創建的docker容器,並進入SHELL對其操作
有同學在docker下安裝了nginx 但是不知道目錄在哪,可以使用命令:
sudo find / -name "50x.html"
因為nginx里必定會有50x.html,所以查找它,結果發現nginx的目錄在docker容器里,如果操作它,就需要進入容器的shell。
必須先啟動容器:
sudo docker start 「容器ID」
然後使用下邊的命令進入shell:
sudo docker exec -it 「容器ID」 bash
將主機的文件復制到容器里:
sudo docker cp 主機目錄 容器ID:容器目錄
⑹ linux系統Docker命令怎麼用
下面是安裝 Docker 客戶端並在上面運行容器的簡單步驟。
1. 下載 Boot2Docker
在我們開始安裝之前,我們需要 Boot2Docker 的可執行文件。可以從 它的 Github 下載最新版本的 Boot2Docker。在這篇指南中,我們從網站中下載版本 v1.6.1。我們從那網頁中用我們喜歡的瀏覽器或者下載管理器下載了名為 docker-install.exe 的文件。
2. 安裝 Boot2Docker
現在我們運行安裝文件,它會安裝 Window Docker 客戶端、用於 Windows 的 Git(MSYS-git)、VirtualBox、Boot2Docker Linux ISO 以及 Boot2Docker 管理工具,這些對於開箱即用地運行全功能的 Docker 引擎都至關重要。
3. 運行 Boot2Docker
安裝完成必要的組件之後,我們從桌面上的「Boot2Docker Start」快捷方式啟動 Boot2Docker。它會要求你輸入以後用於驗證的 SSH 密鑰。然後會啟動一個配置好的用於管理在虛擬機中運行的 Docker 的 unix shell。
為了檢查是否正確配置,運行下面的 docker version 命令。
docker version
4. 運行 Docker
由於 Boot2Docker Start 自動啟動了一個已經正確設置好環境變數的 shell,我們可以馬上開始使用 Docker。請注意,如果我們要將 Boot2Docker 作為一個遠程 Docker 守護進程,那麼不要在 docker 命令之前加 sudo。
現在,讓我們來試試 hello-world 例子鏡像,它會下載 hello-world 鏡像,運行並輸出 "Hello from Docker" 信息。
$ docker run hello-world
5. 使用命令提示符(CMD) 運行 Docker
現在,如果你想開始用命令提示符使用 Docker,你可以打開命令提示符(CMD.exe)。由於 Boot2Docker 要求 ssh.exe 在 PATH 中,我們需要在命令提示符中輸入以下命令使得 %PATH% 環境變數中包括 Git 安裝目錄下的 bin 文件夾。
set PATH=%PATH%;"c:\Program Files (x86)\Git\bin"
運行上面的命令之後,我們可以在命令提示符中運行 boot2docker start 啟動 Boot2Docker 虛擬機。
boot2docker start
注意: 如果你看到 machine does no exist 的錯誤信息,就運行 boot2docker init 命令。
然後復制上圖中控制台標出命令到 cmd.exe 中為控制台窗口設置環境變數,然後我們就可以像平常一樣運行 docker 容器了。
6. 使用 PowerShell 運行 Docker
為了能在 PowerShell 中運行 Docker,我們需要啟動一個 PowerShell 窗口並添加 ssh.exe 到 PATH 變數。
$Env:Path="${Env:Path};c:\Program Files (x86)\Git\bin"
運行完上面的命令,我們還需要運行
boot2docker start
這會列印用於設置環境變數連接到虛擬機內部運行的 Docker 的 PowerShell 命令。我們只需要在 PowerShell 中運行這些命令就可以和平常一樣運行 docker 容器。
7. 用 PUTTY 登錄
Boot2Docker 會在%USERPROFILE%.ssh 目錄生成和使用用於登錄的公共和私有密鑰,我們也需要使用這個文件夾中的私有密鑰。私有密鑰需要轉換為 PuTTY 的格式。我們可以通過 puttygen.exe 實現。
我們需要打開 puttygen.exe 並從 %USERPROFILE%.ssh\id_boot2docker 中導入("File"->"Load" 菜單)私鑰,然後點擊 "Save Private Key"。然後用保存的文件通過 PuTTY 用 [email protected]:2022 登錄。
8. Boot2Docker 選項
Boot2Docker 管理工具提供了一些命令,如下所示。
⑺ 怎麼在docker 中啟動一個daemon
docker run指定的命令如果不是那些一直掛起的命令(比如運行top,不斷echo),就是會自動退出的。-d命令是設置detach為true,根據官方的文檔,意思是讓這個命令在後台運行,但並不是一直運行(我們在一個正常的Linux Terminal中運行/bin/bash,運行完了也就完了,不會一直掛著等待響應的,所以確實沒辦法用daemon方式來跑/bin/bash)。
這個地方官方早期和現在的文檔也確實有些前後不一致,現在是detach,早期的文檔說指定-d以daemon方式來運行容器,可能存在一定的誤解。
另外,如果你需要跑容器里的bash,直接運行docker run -i -t CONTAINER_NAME /bin/bash 就可以了,如果覺得參數比docker attach多,可以設置一個別名(alias)來解決:
alias dockerbash='docker run -i -t CONTAINER_ID /bin/bash'
設置好別名後,直接運行dockerbash就可以進入容器的bash了
⑻ 如何在容器中運行docker命令
1. 安裝 Docker在開始前,我們首先得確保在Linux主機中已經安裝了Docker。這里,我運行的是CentOS 7 主機,我們將運行yum管理器和下面的命令來安裝Docker。# yum install docker# systemctl restart docker.service2. 創建 Dockerfile現在,Docker守護進程已經在運行中了,我們現在准備創建自己的Firefox Docker容器。我們要創建一個Dockerfile,在其中我們要輸入需要的配置來創建一個可以工作的Firefox容器。為了運行 Docker 鏡像我們需要使用最新版本的CentOS。要創建 Docker 鏡像,我們需要用文本編輯器創建一個名為Dockerfile的文件。# nano Dockerfile。
⑼ docker容器啟動命令 /bin/bash有什麼用,我發現不寫這個命令也可以啟動啊,求教大神。
這個命令不是啟動容器的必填參數,這個命令只是在容器中會啟動這個進程,如果你容器有寫entrypoint的話,後面的命令會作為參數給entrypoint,entrypoint運行正常的話,容器就啟動正常,所以和/bin/bash沒有關系
⑽ linux怎麼啟動docker
2.1 在測試機啟動容器,安裝ssh
docker run -i -t ubuntu /bin/bash #此方式運行的容器,退出後容器就會關閉。
apt-get install openssh-server #安裝ssh
#需要修改/etc/sshd/sshd_config文件中內容
PermitRootLogin yes
UsePAM no
2.2 啟動ssh,容器以後台方式運行
docker run -d -p 50001:22 <容器id> /usr/sbin/sshd-D
#容器id可通過 docker ps-a查看,最上面的為最新的。
2.3 通過ssh連接到容器安裝軟體
ssh [email protected] 50001
#連上後想裝什麼就裝什麼,可使用exit退出容器,但後台還會運行。
2.4 服務安裝完成後,停止容器。
docker stop <容器id> #停止運行的容器
2.5 把容器提交生成最新的鏡像
docker commit <容器id> debian02 #把這個容器提交生成新的debian02鏡像(該鏡像是原始鏡像與容器的整合)
2.6 打包鏡像
docker save debian02 >/root/debian02.tar #debian02鏡像打包
2.7 在另外的機器上導入鏡像
docker load < debian02.tar #導入鏡像
docker images #查看存在的鏡像
2.8 啟動容器
docker run -h="redis-test" --name redis-test -d -p 51000:22 -p51001:3306 -p 51003:6379 -p 51004:6381 -p 51005:80 -p 51006:8000 -p 51007:8888 debian02 /etc/rc.local
#此處是我測試機器啟動命令,指定主機名與埠映射。
#啟動後,後面又裝了程序,開機自啟動命令可放在/etc/rc.local文件中。
docker容器遷移簡單方便,可以任意的拷貝部署,以後再也不怕新部署環境了,一堆依賴裝的想死有木有。
3、關於docker容器的埠映射
由於docker容器的IP地址每次啟動都會變,所以不適用於手動添加埠映射(難道每次重啟都來查看容器的IP么?),所以需要每次啟動容器時由docker程序自動添加NAT規則,前期盡可能的把需要映射的埠在創建容器時配置好,如下:docker run -h="activemq" --name activemq -d -p 51000:22 -p 51001:3306-p 51003:6379 -p 51004:6381 -p 51005:80-p 51006:8000 -p 51007:8888 debian/base/etc/rc.local
#此處我把mysql,redis,nginx,ssh都進行了映射。
後續對於docker容器的管理,記住容器的名稱,如上述名稱是activemq,則使用docker stop,start來控制容器進程。docker stop activemq
docker start activemq
當然,也可以不讓docker每次啟動容器修改容器的IP地址,參考如下:
docker網路配置:http://www.open-open.com/lib/view/open1404896485747.html
4、關於docker容器的多程序開機自動運行
docker容器每次啟動時,開機自啟動的命令都要在啟動容器前指定。如 docker run -I -t debian /bin/bash命令,只會運行/bin/bash程序,其它的程序都不會運行,對於要跑多個程序的容器特別糾結。
多程序開機自動運行方法:
可把前面所說的啟動命令換成dockerrun -I -t debian /etc/rc.local,在容器中把所有需要開機自的啟動命令放在/etc/rc.local中,就可以達到多程序開機自啟動了。
後台運行則是:docker run -d -p 50001:22 debian /etc/rc.local。注意:run命令是創建一個新的容器,如果要啟動一個曾經運行過的容器,則用命令docker ps -a中找對應的容器ID,然後使用docker start <容器ID>即可。