docker鏡像命令
docker search centos -s 100 搜索鏡像/-s 星級(jí)參數(shù)
docker pull centos 拉取鏡像
docker image list docker images 查看本地鏡像
docker image inspect 鏡像id 查看鏡像詳情
docker rmi centos --force 刪除鏡像/--force 強(qiáng)制刪除 不能刪的話就先刪容器
docker image -q 查看所有鏡像的id
docker image history 名稱/id 查看鏡像的制作過(guò)程
查看容器運(yùn)行狀態(tài)
docker ps / docker container ls 查看當(dāng)前運(yùn)行的容器
docker ps -a 查看所有運(yùn)行的容器(運(yùn)行/不運(yùn)行)
ctrl+p+q 退出時(shí)后臺(tái)運(yùn)行
exit 關(guān)閉并退出
容器命令
docker run -it centos /bin/bash 創(chuàng)建并運(yùn)行新容器
docker create -it centos /bin/bash 創(chuàng)建但不運(yùn)行
docker start 名稱/id 啟動(dòng)容器
docker attach 名稱/id 連接容器(在開(kāi)啟狀態(tài)下能夠再次連接)
docker create -it --restart=always centos /bin/bash --restart=always
docker start centos 啟動(dòng)centos服務(wù)
systemctl restart docker 重啟容器服務(wù)
docker inspect 容器id 查看容器詳細(xì)信息
docker inspect --format '{{.brings.Gatway}}' centos 按指定格式輸出
docker start 名稱/id 啟動(dòng)容器
docke rm 名稱/id 刪除容器
docker stop 名稱/id 關(guān)閉容器
docker kill 名稱/id 強(qiáng)制關(guān)閉容器
docker rm `docker ps -a |awk '/Exited/{print $1}'` 刪除所有已關(guān)閉的容器
docker pause 名稱/id 暫停容器內(nèi)的所有進(jìn)程
docker unpause 恢復(fù)容器暫停的進(jìn)程
docker run -it -d --rm --name "testcontainer" 鏡像ad 運(yùn)行一個(gè)自定義名字的容器(后臺(tái)運(yùn)行)
-d 運(yùn)行在后臺(tái) --rm 退出時(shí)刪除容器
docker ps
1 docker attach 名稱/id
ls
2 docker logs 名稱/id 能夠查看終端1中執(zhí)行的命令
docker ps
docker rename id/名稱 hahahaha 將容器重新命名
docker ps
把正在運(yùn)行的容器直接導(dǎo)出成tar包的鏡像文件
docker ps #確定正在運(yùn)行的容器
docker export 容器名稱 > 鏡像.tar #將容器打包成tar包
導(dǎo)入鏡像歸檔文件到其他宿主機(jī):
docker import python_app.tar python_app:v3
docker images
鏡像沒(méi)有名字,隨后可以單獨(dú)起名字(name和tag)
docker 鏡像id mycentos:v3
鏡像遷移
docker save -o nginx.tar nginx
docker load < nginx.tar
將正在運(yùn)行的容器直接提交成為一個(gè)鏡像
docker start id/名稱 啟動(dòng)容器
docker exec -it id/名稱 /bin/bash exec 表示后面加可執(zhí)行的命令參數(shù) 進(jìn)入容器
touch test.txt 創(chuàng)建一個(gè)文件
exit 退出
docker commit id/名稱 wing/helloworld:v2 將新建的文件提交到鏡像中保存
通過(guò)dockerfile創(chuàng)建鏡像
# docker pull python:2.7-slim # 使用官方提供的 Python 開(kāi)發(fā)鏡像作為基礎(chǔ)鏡像
1 創(chuàng)建鏡像所在的文件夾和Dockerfile文件夾
# mkidr python_app
# cd python_app
# vim app.py
from flask import Flask
import socket
import os
app = Flask(__name__)
@app.route('/')
def hello():
html = "<h3>Hello {name}!</h3>" \
"<b>Hostname:</b> {hostname}<br/>"
return html.format(name=os.getenv("NAME", "world"), hostname=socket.gethostname())
if __name__ == "__main__":
app.run(host='0.0.0.0', port=80)
2 應(yīng)用依賴
# vim requirements.txt
Flask
3 Dockerfile制作容器鏡像:
# vim Dockerfile
FROM python:2.7-slim
WORKDIR /app
ADD . /app
RUN pip install --trusted-host pypi.python.org -r requirements.txt
EXPOSE 80
ENV NAME World
CMD ["python", "app.py"]
# ls
Dockerfile app.py requirements.txt
4 構(gòu)建鏡像:
# docker build -t id/名稱 .
# 查看結(jié)果
docker image ls
# 啟動(dòng)容器
docker run -p 4000:80 id/名稱
# 查看容器
docker ps
# 進(jìn)入容器
docker exec -it id /bin/bash
# 訪問(wèn)容器應(yīng)用
curl http://10.0.104.200:4000
給容器鏡像打tag起一個(gè)完整的名字:
# docker tag helloworld yanqiang20072008/helloworld:v1
yanqiang20072008為我在docker hub的用戶名
推送鏡像到docker hub:
# docker push yanqiang20072008/helloworld:v1