docker-compose中啟動(dòng)鏡像失敗的幾種解決方法
正常的docker run啟動(dòng)
**java:8u111-jdk**是java官方鏡像,如下命令可以成功啟動(dòng)一個(gè)該鏡像的容器:
docker run --name test001 -idt java:8u111-jdk
以上命令創(chuàng)建的容器,可用docker exec -it test001 /bin/bash進(jìn)入容器,執(zhí)行我們所需的操作;
docker-compose啟動(dòng)失敗
這里寫個(gè)最簡單的docker-compose.yml,然后用docker-compse,內(nèi)容如下:
master: image: java:8u111-jdk
在此文件所在目錄下執(zhí)行docker-compose up -d啟動(dòng)容器,再執(zhí)行docker ps -a查看容器狀態(tài),信息如下所示:
root@rabbitmq:/usr/local/work/test# docker-compose up -d Creating test_master_1 ... done root@rabbitmq:/usr/local/work/test# docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES bb433fe9984d java:8u111-jdk "/bin/bash" About a minute ago Exited (0) About a minute ago test_master_1
信息顯示我們啟動(dòng)的容器狀態(tài)為Exited (0) About a minute ago,也就是說雖然創(chuàng)建了容器,但是該容器并未正常運(yùn)行;
控制終端缺失
啟動(dòng)失敗是因?yàn)槿笔Я丝刂平K端的配置,這里有兩種方式修復(fù);
使用tty參數(shù)(推薦使用)
修改docker-compose.yml,增加一個(gè)配置tty:true,如下:
master: image: java:8u111-jdk tty: true
先執(zhí)行docker-compose down將之前的容器刪除,再執(zhí)行docker-compose up -d啟動(dòng),可以發(fā)現(xiàn)啟動(dòng)成功,并且可以成功進(jìn)入容器進(jìn)行操作:
root@rabbitmq:/usr/local/work/test# docker-compose up -d Creating test_master_1 ... done root@rabbitmq:/usr/local/work/test# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES f51debaa26ec java:8u111-jdk "/bin/bash" 2 seconds ago Up 2 seconds test_master_1 root@rabbitmq:/usr/local/work/test# docker exec -it test_master_1 /bin/bash root@f51debaa26ec:/# java -version openjdk version "1.8.0_111" OpenJDK Runtime Environment (build 1.8.0_111-8u111-b14-2~bpo8+1-b14) OpenJDK 64-Bit Server VM (build 25.111-b14, mixed mode)
使用exec重新創(chuàng)建容器(不推薦)
這種方式并不推薦,因?yàn)檫@樣做雖然可以啟動(dòng)容器,但是只能重新創(chuàng)建一個(gè)容器,具體方法如下:
- 使用docker-compose up -d命令啟動(dòng)后,由于沒有tty:true的配置,容器就退出了;
- 這時(shí)候執(zhí)行命令docker-compose run master /bin/bash,會(huì)創(chuàng)建一個(gè)容器,并且進(jìn)入這個(gè)容器;
- 在當(dāng)前電腦再打開一個(gè)控制臺(tái),執(zhí)行docker ps命令,發(fā)現(xiàn)新建了一個(gè)容器,狀態(tài)正常;
到此這篇關(guān)于docker-compose中啟動(dòng)鏡像失敗的幾種解決方法的文章就介紹到這了,更多相關(guān)docker-compose 啟動(dòng)鏡像失敗內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Docker 部署HAProxy v2.2.29 并暴露指標(biāo)接口的問題解決
haproxy提供高可用性、負(fù)載均衡以及基于TCP(第四層)和HTTP(第七層)應(yīng)用的代理,支持虛擬主機(jī),它是免費(fèi)、快速并且可靠的一種解決方案,這篇文章主要介紹了Docker 部署HAProxy v2.2.29 并暴露指標(biāo)接口,需要的朋友可以參考下2023-04-04在 docker 之間導(dǎo)出導(dǎo)入鏡像的方法
本篇文章主要介紹了在 docker 之間導(dǎo)出導(dǎo)入鏡像的方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-07-07Docker實(shí)現(xiàn)同Ip網(wǎng)段聯(lián)通的實(shí)現(xiàn)
這篇文章主要介紹了Docker實(shí)現(xiàn)同Ip網(wǎng)段聯(lián)通的實(shí)現(xiàn),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-12-12使用 docker-compose 運(yùn)行 MySQL的方法
這篇文章主要介紹了使用 docker-compose 運(yùn)行 MySQL的方法,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-09-09docker容器添加對外映射端口的實(shí)現(xiàn)
本文主要介紹了docker容器添加對外映射端口的實(shí)現(xiàn) ,從而實(shí)現(xiàn)容器與外部網(wǎng)絡(luò)的通信,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-09-09Redis快速部署為Docker容器的實(shí)現(xiàn)方法
本文主要介紹了Redis快速部署為Docker容器的實(shí)現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-12-12