沒有花裏胡哨,純乾貨,秒懂docker

Docker是怎麼產生的呢?mysql

——運維人員的苦:每次部署都很煩,須要安裝jdk,各類驅動等等sql

——這時,Docker應運而生docker

一什麼是容器?

A:用來裝東西,東西:打包好的環境。打包=應用app+應用須要的體系(系統)
Docker:一臺機器上開闢不一樣空間(環境),不一樣空間跑不一樣app。

二容器和虛擬機的區別


三Docker架構


說明:
1 HOST:Docker宿主機
安裝Docker,並運行Decker Daemon。
2 Decker Daemon是Docker守護進程。用戶經過Docker client(docker命令)和Docker daemon交互。
3 Registry:Docker Cloud公司提供的標準,註冊服務。複製代碼

一個鏡像能夠建立多個容器,鏡像跑起來就是容器。容器直接是相互隔離的tomcat

四 容器的生命週期


舉個例子:bash

tomcat鏡像文件,
經過docker run ->  建立成一個running狀態                             
經過docker create ->   變成已建立狀態  -> docker start  -> 啓動 running狀態	

running狀態 有不少操做,容器變成中止狀態,並無刪除。
docker rm 纔是真正銷燬	

docker兩種機制:
內存溢出 容器變成stopped
容器沒有主進程  容器變成stopped複製代碼

五安裝Docker

yum install docker-ce -y
docker version  #安裝完成以後,查看一下複製代碼

六Docker基本操做

以tomcat鏡像爲例
架構

1 docker search tomcat #從hub.docker網站查找鏡像
2 docker pull tomcat # 拉去tomcat鏡像包到本地。 默認最新lastest
3 docker image ls #查看本地有的鏡像
4 docker rmi -f 鏡像名or鏡像ID:TAG #TAG 版本號
5 docker container inspect 容器名or容器ID #獲取鏡像詳細信息
6 docker run --name 容器名 -d -p 宿主端口:容器端口 tomcat   複製代碼

七Docker container容器基本操做

1 docker container ps  #host正在運行的容器。容器必須有一個app在運行2 docker logs 容器名
3 curl 容器IP:容器端口    #內部訪問
4 http://宿主ip:宿主端口   #外部訪問
5 docker exec -it 容器名or容器ID /bin/bash   #進到容器內部操做複製代碼

八實例——mysql爲例

docker search mysql 
docker pull mysql
docker image ls
docker run --name mysql -d -p 6666:3306 -e MYSQL_ROOT_PASSWORD=1234  mysql:5.7
docker container exec -it mysql /bin/hash
配置mysql參數——經過掛載技術
find / -name "*mysql"  #找到mysql log文件
exit  #退出容器
docker container inspect  mysql #查看mysql 容器信息
#建立文件夾mys:配置文件,數據,日誌
mkdir -p /mys/mysql/conf
mkdir -p /mys/mysql/data
mkdir -p /mys/mysql/log
#文件複製到mys
docker cp mysql:/etc/mysql/mysql.conf.d/mysqld.cnf /mys/mysql/conf
#修改mys中配置文件 mysqld.cnf 文件,設置字符集等
docker rm -f mysql
#掛載,鏡像run
docker run --name mysql -d -p 6666:3306 -v /mys/mysql/conf:/etc/mysql/mysql.conf.d/ -e MYSQL_ROOT_PASSWORD=1234  mysql:5.7複製代碼

從容器訪問mysqlapp

相關文章
相關標籤/搜索