Docker基礎及部署相關的一些東西

2021-08-31 19:09:29 字數 4015 閱讀 7003

本文內容基於《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 機器上,也可以實現虛擬化。容器是完全使用沙箱機制,相互之間不會有任...