本文內容基於《spring cloud與docker》,周立著。
一、docker簡介
二、docker的架構
三、安裝docker(ubuntu)
四、docker映象常用命令
五、docker容器常用命令
六、mysql相關
七、spring boot相關
八、nginx相關
九、redis相關
十、dockerfile常用指令
docker是乙個開源的容器引擎,它有助於更快地交付應用。docker可將應用程式和基礎設施層隔離,並且能將基礎設施當作程式一樣進行管理。使用docker,可更快地打包、測試以及部署應用程式,並可以縮短從編寫到部署執行**的週期。
1. docker daemon(docker守護程序)
2. client(docker客戶端)
3. images(docker映象)
4. container(容器)
5. registry
1. 前提條件,系統的核心版本高於 3.10
uname -r
2. 獲取最新版本的docker安裝包
wget -qo- | sh
3. 啟動docker 後台服務
sudo service docker start
4. 測試執行hello-world
docker run hello-world
5. 映象加速
curl -ssl | sh -s
1. 搜尋映象
docker search
docker pull
3. 列出映象
docker images
4. 刪除本地映象
docker rmi
docker rmi -f $(docker images) #刪除所有映象,-f表示強制刪除
5. 構建映象
docker build
1. 新建並啟動容器
docker run
--network:指定網路模式
--name:指定容器名稱
2. 列出容器
docker ps #列出執行中的容器
docker ps -a #列出所有容器
3. 停止容器
docker stop
4. 強制停止容器
docker kill
5. 啟動已停止的容器
docker start
6. 重啟容器
docker restart
7. 進入容器
docker exec -it web1_nginx1 /bin/sh
8. 刪除容器
docker rm #只能刪除已停止的容器
docker rm -f $(docker ps -a -q) #刪除所有容器
9. 檢視容器實時日誌
docker logs -f -t --tail 10 web1_nginx1
1. 拉取映象
docker pull daocloud.io/library/mysql:5.7.4
2. 新建並啟動映象
docker run --name mysql1 --restart=always -v /home/yeta/data:/var/lib/mysql -v /etc/localtime:/etc/localtime:ro -v /etc/timezone:/etc/timezone:ro -e mysql_root_password=root -d -p3306:3306 daocloud.io/library/mysql:5.7.4
3. 使用 mysql 命令列工具連線 mysql
docker run -it --link mysql1:mysql --rm daocloud.io/library/mysql:5.7.4 sh -c 'exec mysql -h"$mysql_port_3306_tcp_addr" -p"$mysql_port_3306_tcp_port" -uroot -p"$mysql_env_mysql_root_password"'
4. 修改時區
set global time_zone = '+8:00';
set time_zone = '+8:00';
flush privileges;
5. 建庫建表(略)
1. 拉取映象
docker pull daocloud.io/library/nginx:1.13.0-alpine
2. 新建並啟動映象(託管靜態網頁內容)
docker run --name web1_nginx1 -v /home/yeta/projects/web1/html/:/usr/share/nginx/html:ro -v /home/yeta/projects/web1/nginx.conf:/etc/nginx/nginx.conf:ro -d -p 80:80 daocloud.io/library/nginx:1.13.0-alpine
from daocloud.io/library/nginx:1.13.0-alpine
copy html /usr/share/nginx/html
copy nginx.conf /etc/nginx/nginx.conf
docker build -t web1_nginx2 .
docker run --name web1_nginx2 -d -p 80:80 web1_nginx2
1. 拉取映象
docker pull daocloud.io/library/redis:3.2.9
2. 啟動容器
docker run --name redis1 -d -p 6379:6379 daocloud.io/library/redis:3.2.9
1. add複製檔案從src目錄複製檔案到容器的dest,src可以是dockerfile所在目錄的相對路徑,也可以是乙個url,還可以是乙個壓縮包。
2. copy複製檔案
3. env設定環境變數
4. arg設定構建引數
5. cmd容器啟動命令
6. entrypoint入口點
7. expose宣告暴露的埠
8. from指定基礎映象
9. label為映象新增元資料
10. maintainer指定維護者的資訊
11. run執行命令
格式2:run ["executable", "param1", "param2"]
12. user設定使用者
13. volume指定掛載點
14. workdir指定工作目錄
docker部署相關操作
停止容器 docker stop 容器id或容器name啟動容器 docker start 容器id或容器name重啟容器 docker restart 容器id或容器name檢視所有容器,包括關閉的,如果只檢視啟動的容器,去掉命令中的 a 即可 docker ps a檢視系統核心 uname r啟...
docker基礎相關
docker architectuer docker daemon docker client docker registries 用來儲存images,有很多公用的,也可以建立私有的 client執行build,run,pull等命令 客戶端從registries拉image到dockerhost...
Docker簡介及部署
docker簡介及部署 docker簡介 docker 是乙個開源的應用容器引擎,而乙個容器containers其實是乙個虛擬化的獨立的環境,讓開發者可以打包他們的應用以及依賴包到乙個可移植的容器中,然後發布到任何流行的 linux 機器上,也可以實現虛擬化。容器是完全使用沙箱機制,相互之間不會有任...