Docker是怎麼產生的呢?mysql
——運維人員的苦:每次部署都很煩,須要安裝jdk,各類驅動等等sql
——這時,Docker應運而生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複製代碼
yum install docker-ce -y
docker version #安裝完成以後,查看一下複製代碼
以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 複製代碼
1 docker container ps #host正在運行的容器。容器必須有一個app在運行2 docker logs 容器名
3 curl 容器IP:容器端口 #內部訪問
4 http://宿主ip:宿主端口 #外部訪問
5 docker exec -it 容器名or容器ID /bin/bash #進到容器內部操做複製代碼
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