Dockerfile鏡像定制
vim Dockerfile 創(chuàng)建定制文件,寫入具體配置內(nèi)容
# 拉取基礎(chǔ)鏡像
FROM nginx
# 復(fù)制文件,<源路徑1>... <目標(biāo)路徑>
COPY [--chown=<user>:<group>]
# <命令行命令> 等同于,在終端操作的 shell 命令。
RUN <命令行命令>
# 設(shè)置環(huán)境變量
ENV <key1>=<value1> <key2>=<value2>...
# 指定工作目錄。
WORKDIR <工作目錄路徑>
...
docker build -t nginx:v1 . 執(zhí)行定制文件,拉取鏡像并執(zhí)行命令
鏡像
查看所有鏡像
docker images
拉取鏡像
docker pull nginx
刪除鏡像
docker rmi nginx
登陸到一個Docker鏡像倉庫,如果未指定鏡像倉庫地址,默認(rèn)為官方倉庫 Docker Hub
docker login -u 用戶名 -p 密碼 [server]
登出倉庫
docker logout
標(biāo)記本地鏡像,將其歸入某一倉庫
docker tag nginx server/nginx:v1.0
上傳鏡像到倉庫
docker push server/nginx:v1.0
容器
查看啟動的容器
docker ps
-a 查看所有狀態(tài)容器,包括停止運(yùn)行的
停止運(yùn)行的容器
docker stop nginx
刪除已存在容器
docker rm nginx
創(chuàng)建一個名為nginx的容器并啟動
docker run --name nginx -p 8080:80 -d nginx
如果暫時沒有要運(yùn)行的程序,會啟動會自動退出,無法進(jìn)去,可以開啟交互進(jìn)程
docker run --name nginx -dit nginx
啟動過程中需要掛載數(shù)據(jù)目錄的話
docker run --name nginx -v /var/data1:/app/data2 -dit nginx
- -a stdin: 指定標(biāo)準(zhǔn)輸入輸出內(nèi)容類型,可選 STDIN/STDOUT/STDERR 三項;
- -d: 后臺運(yùn)行容器,并返回容器ID;
- -i: 以交互模式運(yùn)行容器,通常與 -t 同時使用;
- -P: 隨機(jī)端口映射,容器內(nèi)部端口隨機(jī)映射到主機(jī)的端口
- -p: 指定端口映射,格式為:主機(jī)(宿主)端口:容器端口
- -t: 為容器重新分配一個偽輸入終端,通常與 -i 同時使用;
- --name="nginx-lb": 為容器指定一個名稱;
- --dns 8.8.8.8: 指定容器使用的DNS服務(wù)器,默認(rèn)和宿主一致;
- --dns-search example.com: 指定容器DNS搜索域名,默認(rèn)和宿主一致;
- -h "mars": 指定容器的hostname;
- -e username="ritchie": 設(shè)置環(huán)境變量;
- --env-file=[]: 從指定文件讀入環(huán)境變量;
- --cpuset="0-2" or --cpuset="0,1,2": 綁定容器到指定CPU運(yùn)行;
- -m :設(shè)置容器使用內(nèi)存最大值;
- --net="bridge": 指定容器的網(wǎng)絡(luò)連接類型,支持 bridge/host/none/container: 四種類型;
- --link=[]: 添加鏈接到另一個容器;
- --expose=[]: 開放一個端口或一組端口;
- --volume , -v: 綁定一個卷,格式為:主機(jī)(宿主)目錄:容器目錄
如果已創(chuàng)建過,啟動已存在的 nginx 容器
docker start nginx
進(jìn)入已啟動的容器命令行,退出時執(zhí)行exit即可
docker exec -it nginx bash
拷貝文件到容器中,需指定容器ID,輸入前4位即可
docker cp dist.zip 1973:/website
將做好的容器保存為鏡像,以備下次在用
docker commit -a "jadefan" -m "test" a404c6c174a2 myimages:v1
-a :提交的鏡像作者;
-c :使用Dockerfile指令來創(chuàng)建鏡像;
-m :提交時的說明文字;
-p :在commit時,將容器暫停。