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表示不詢問安裝,直到安裝成功,安裝完后再次查看安裝列表
 - 啟動(dòng)docker systemctl start docker
 - 查看docker服務(wù)狀態(tài) systemctl status docker
 

說明: 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下來。
 - 然后使用 centos鏡像啟動(dòng)了一個(gè)容器。
 - 再分配一個(gè)文件系統(tǒng),把這個(gè)文件置于這個(gè)容器的上一層,置于可寫。
 - 同時(shí)分配了一個(gè)IP地址,使用ip命令查看 ip ad li
 
?

docker容器會(huì)運(yùn)行一個(gè)你指定的應(yīng)用程序,當(dāng)這個(gè)應(yīng)用程序退出時(shí),docker容器也就退出了。所以說,每次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è)問題,很大情況下是進(jìn)不去的,ctrl + c 之后,再次查看容器狀態(tài)發(fā)現(xiàn)容器已經(jīng)退出了。

使用方式二進(jìn)入容器, nsenter 訪問另外一個(gè)容器的名稱空間,通過PID進(jìn)去。
nsenter 在 util-linux軟件包內(nèi),如果沒有這個(gè)命令,需要先用yum 安裝一下,
yum install -u util-linux
獲取這個(gè)容器的PID,
docker inspect --format "{{.State.Pid}}" 容器名稱 
使用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命令安裝
分開執(zhí)行 apt-get update & apt-get install vim,有些慢,慢慢等待

進(jìn)入容器腳本 nsenter
編寫進(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ù)庫及操作方法詳解
這篇文章主要介紹了Docker部署PostgreSQL數(shù)據(jù)庫及操作方法的相關(guān)資料,包括拉取鏡像、運(yùn)行容器、設(shè)置參數(shù)以及查看運(yùn)行狀態(tài),通過這些步驟讀者可以輕松在本地搭建并運(yùn)行PostgreSQL數(shù)據(jù)庫,需要的朋友可以參考下2025-04-04
 docker容器無法訪問外網(wǎng),但是宿主機(jī)卻可以的問題
這篇文章主要介紹了docker容器無法訪問外網(wǎng),但是宿主機(jī)卻可以的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-08-08

