docker基本原理
https://www.jianshu.com/p/99cd35757c1a
docker線上安裝
sudo yum install docker-ce
檢視版本
docker -v
docker 離線安裝
linux離線安裝docker (18.03.1-ce)
連結:https://pan.baidu.com/s/1bhvqAnubUQs79FqS3QEuLA
密碼:6ni5
啟動
- systemctl docker start
- systemctl docker restart
- systemctl docker stop
鏡像
搜尋鏡像:
docker search [鏡像名]
如:docker search centos
拉取鏡像
docker pull [鏡像名]
上傳自己鏡像至https://hub.docker.com/
1、将本地先在 https://hub.docker.com/ 網站注冊使用者,比如 lishengping;
2、将本地鏡像命名至格式:lishengping/鏡像名 比如lishengping/my_images
3、登陸:sudo docker login 根據提示輸入使用者名和密碼(使用者名和密碼為剛剛注冊的)
4、sudo docker push lishengping/my_images.
PS: 一定要在鏡像的名稱前加上自己使用者名作為字首,不然會報 “denied: requested access to the resource is denied” 錯誤
例子:從hub.docker.com拉取自己的docker鏡像
docker pull lishengping/stress:v1
檢視鏡像
docker images
删除鏡像
docker rmi [鏡像名|鏡像id]
鏡像儲存至本地
docker save [鏡像名|鏡像id] > 【儲存的路徑】
docker save -o 【儲存的路徑】 [鏡像名|鏡像id]
docker export -o 【鏡像名.tar】 [鏡像名|鏡像id]
從本地加載鏡像
docker load --input 【鏡像名.tar】
docker load < 【鏡像名.tar】
docker load -i 【鏡像名.tar】
docker import 【鏡像名.tar】 [鏡像名|鏡像id]:tag
建立鏡像
基于容器建立鏡像
docker commit -m ‘建立資訊’ 容器名|容器id 鏡像名稱:鏡像标簽
基于Dockerfile建立鏡像
Dockerfile:
# Author: Lisen
# MANTINTAINER Lisen
# Base images
FROM centos
# ADD 會自動解壓 tar 等壓縮檔案
ADD docker_test.tar /
# COPY 正常的複制,不解壓
COPY docker_test.tar /
# RUN
RUN yum makecache
RUN yum install -y wget
RUN yum install -y vim && yum clean all
# WORKDIR 指定指令運作的路徑
WORKDIR /docker_test
#CMD ["python", "--version"]
NTRYPOINT ["echo", "Hello"]
配置鏡像 pull 加速器
daocloud加速
先在 www.daoclooud.io 注冊,然後首頁點選加速器,可以從頁面擷取Linux和macos加速方法
linux:
curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://f1361db2.m.daocloud.io
執行: cat /etc/docker/daemon.json 會發現在檔案中出現了http://f1361db2.m.daocloud.io
macos:
點選docker圖示 -> prefeneces -> Daemon -> Registry-mirrors -> 添加 http://f1361db2.m.daocloud.io
阿裡雲加速
{
“registry-mirrors”: [“https://72idtxd8.mirror.aliyuncs.com”]
}
配置檔案
centos
參數配置:/etc/default/dockers
服務配置: /lib/systemd/system/docker.service centos
ubuntu
配置參數:/etc/sysconfig/docker
服務配置:vim /lib/systemd/system/docker.service
檢視鏡像的建立過程:docker history
容器
建立容器:
docker run -it -d --rm --name regulation_0801 -v /Users/Lisen/Documents/docker_volumns:/volumns -p 18010:8000 -p 18011:8001 fujian_regulation_0712 /bin/bash -c “while true;do echo hello world;sleep 1;done”
-v:卷映射
–volume:卷映射
-p:指定端口映射
-P:端口随機映射
–name:容器名稱
-i: 以互動模式運作容器,通常與 -t 同時使用
-t:為容器重新配置設定一個僞輸入終端,通常與 -i 同時使用
-d:背景運作
–rm:容器退出自動删除容器
其他參數:
/bin/bash : 啟動容器時運作的指令
–cpuset==0 : 指定0号cpu
–cpu 1 : 指定cpu可使用的數量
-m : 指定容器最大可使用記憶體
-h: 容器的主機名
檢視容器的運作情況
docker stats:
檢視容器
1、檢視所有容器,包括停止的容器
docker ps
2、檢視運作中的容器
docker ps -a
3、檢視最後建立的一個容器
docker ps -a
檢視容器端口
docker port [容器名|容器id]
開始容器
1、開啟容器但不進入容器
docker start [容器名|容器id]
2、開啟容器同時進入容器
docker start -i [容器名|容器id]
進入容器
1、進入容器,但是和别人共享一個界面
docker attach [容器名|容器id]
2、進入容器,獨享一個界面
docker exec -it [容器名|容器id] /bin/bash
停止容器:
1、退出容器不停止
ctrl+P ctrl+Q
2、停止容器
docker stop [容器名|容器id]
3、快速結束容器
docker kill [容器名|容器id]
日志功能
docker logs [容器名|容器id]
參數:
-f :表示 log 列印輸出
-t :表示把輸出時間也列印
–tail all 表示輸出所有行
–tail 10 表示輸出最後 10 行 my_docker 表示容器名或者 id