Docker鏡像下載及容器啟動(dòng)教程
Docker鏡像和容器安裝
- 版本要求:系統(tǒng)為64位、系統(tǒng)內(nèi)核版本為 3.10 以上
- 查看linux系統(tǒng)版本,使用 lsb_release -a ,若出現(xiàn)未知的命令,先使用yum安裝 redhat-lsb
# yum 安裝redhat-lsb yum install -y redhat-lsb # 查看centos版本 lsb_release -a
- 系統(tǒng)內(nèi)核版本查看 uname -r
- 查看是否已安裝docker列表 我這個(gè)是已經(jīng)安裝了的截圖 yum list installed | grep docker
- 安裝docker yum -y install docker , y表示不詢(xún)問(wèn)安裝,直到安裝成功,安裝完后再次查看安裝列表
- 啟動(dòng)docker systemctl start docker
- 查看docker服務(wù)狀態(tài) systemctl status docker
說(shuō)明: Docker安裝成功
搜索centos鏡像 docker search centos , 第一條是官方的,引用次數(shù)最多,stars
獲取 centos 鏡像 docker pull centos
查看鏡像 docker images
Docker 常用命令
使用docker輸出
‘hello world’ docker run centos /bin/echo 'hello world'
查看docker 所有的鏡像,包括狀態(tài) docker ps -a
創(chuàng)建一個(gè)centos容器,命名為 mycentos,并進(jìn)入其中,不退出 docker run --name mydocker -it centos /bin/bash
進(jìn)入centos容器后,執(zhí)行 ps aux , 可以看到當(dāng)前只有兩個(gè)進(jìn)程
執(zhí)行docker run centos 做了什么事情那? 查看centos容器IP ip ad li
- 首先檢查 centos鏡像是否存在,若不存在,則先在dockerHub 上pull下來(lái)。
- 然后使用 centos鏡像啟動(dòng)了一個(gè)容器。
- 再分配一個(gè)文件系統(tǒng),把這個(gè)文件置于這個(gè)容器的上一層,置于可寫(xiě)。
- 同時(shí)分配了一個(gè)IP地址,使用ip命令查看 ip ad li
?
docker容器會(huì)運(yùn)行一個(gè)你指定的應(yīng)用程序,當(dāng)這個(gè)應(yīng)用程序退出時(shí),docker容器也就退出了。所以說(shuō),每次docker容器啟動(dòng),只能啟動(dòng)一個(gè)應(yīng)用程序
退出docker容器,在看之前創(chuàng)建的docker容器。 mydcoker 容器已經(jīng)退出了
啟動(dòng)一個(gè)已經(jīng)退出的容器 docker start CONTAINER ID
停止一個(gè)容器 docker stop 容器ID
刪除一個(gè)容器 docker rm 容器ID
進(jìn)入容器 docker attach 容器ID,有一個(gè)問(wèn)題,很大情況下是進(jìn)不去的,ctrl + c 之后,再次查看容器狀態(tài)發(fā)現(xiàn)容器已經(jīng)退出了。
使用方式二進(jìn)入容器, nsenter 訪問(wèn)另外一個(gè)容器的名稱(chēng)空間,通過(guò)PID進(jìn)去。
nsenter 在 util-linux軟件包內(nèi),如果沒(méi)有這個(gè)命令,需要先用yum 安裝一下,
yum install -u util-linux
獲取這個(gè)容器的PID,
docker inspect --format "{{.State.Pid}}" 容器名稱(chēng)
使用nsenter 命令進(jìn)入 mynginx容器
nsenter --target 25760 --mount --uts --ipc --net --pid
進(jìn)入鏡像后,若發(fā)現(xiàn)ps 命令找不到,執(zhí)行 apt-get update && apt-get install procps 安裝
官方Nginx 鏡像的 nginx 在 /etc/nginx 目錄下
nginx鏡像的root 目錄位置 /usr/share/nginx/html
VI命令安裝
分開(kāi)執(zhí)行 apt-get update & apt-get install vim,有些慢,慢慢等待
進(jìn)入容器腳本 nsenter
編寫(xiě)進(jìn)入docker腳本,參數(shù)為 容器Name
腳本命名為 in.sh
#!/bin/bash CNAME=$1 CPID=$(docker inspect --format "{{.State.Pid}}" $CNAME) nsenter --target $CPID --mount --uts --ipc --net --pid
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Docker部署PostgreSQL數(shù)據(jù)庫(kù)及操作方法詳解
這篇文章主要介紹了Docker部署PostgreSQL數(shù)據(jù)庫(kù)及操作方法的相關(guān)資料,包括拉取鏡像、運(yùn)行容器、設(shè)置參數(shù)以及查看運(yùn)行狀態(tài),通過(guò)這些步驟讀者可以輕松在本地搭建并運(yùn)行PostgreSQL數(shù)據(jù)庫(kù),需要的朋友可以參考下2025-04-04docker容器無(wú)法訪問(wèn)外網(wǎng),但是宿主機(jī)卻可以的問(wèn)題
這篇文章主要介紹了docker容器無(wú)法訪問(wèn)外網(wǎng),但是宿主機(jī)卻可以的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-08-08