docker 常用命令(*)


查找鏡像
https://hub.docker.com/
search  --> centos7

一般docker 會有一個基礎鏡像,中間件鏡像,應用鏡像,生成一個鏡像

docker build  通過dockerfile生成鏡像
docker images  查看當前本地有哪些docker鏡像
docker run 通過docker鏡像生成docker容器(docker help run 查看run命令)
docker ps  查看正在up運行中的docker鏡像,docker ps -a 查看所有的
docker exec 進入容器
docker rm   刪除容器,-f 強制刪除,up狀態的也可以刪除
docker stop  停止提一個容器
docker start  啟動一個容器
docker tag   給鏡像打標簽(docker tag imageid name:tag)
docker rmi <image id>  刪除images,通過image的id來指定刪除誰




git clone https://git.oschina.net/99fu/security.git

docker 鏡像地址  docker pull centos




dockerfile 是自動構建docker鏡像的配制文件。

進入到git下,進入centos7目錄下
docker build是用dockerfile生成docker鏡像,每個add,生成一個docker layer
# docker build -t  fu/centos:7.0 .
-t 給鏡像取名字

完整命令規則: docker build -t registry_url/namespace/imageName:version ./path  
(--如果沒寫vestion默契為latest最新的   .如果dockerfile在當前目錄下,只用.就可以,否則加上dockerfile路徑)

#docker run -it -d -p 2222:22 --name base fu/centos:7.0
-it 交互模式,前台啟動
-d   后端其動,返回id號
-p   小p,如果用 9999:22,重啟后還是用指定端口映射,如果占用,報錯 
-P    大P,自動找無人使用的端口映射,如果服務器重啟,就會隨機用個別的端口映射
--name 給容器取個名字
fu/centos:7.0 用哪個鏡像啟動容器,如果容器在本地不存在,則遠程pull,找不到則報錯
Unable to find image 'csphere/centos7:7.1' locally
Pulling repository docker.io/csphere/centos7
docker: Error: image csphere/centos7:7.1 not found.
See 'docker run --help'.


docker exec -it website /bin/bash
exec 進入容器
-it 交互模式
容器名稱
/bin/bash 
docker help 中可以看出attach 也可以進入容器中,但是試過會有卡死現象
exit退出,container 還是處於up狀態
容器是基於基礎鏡像生成的容器,所以具有centos的命令

構建中間件鏡像myslq
進入mysql 
docker build -t fu/mysql:5.4 .
生成鏡像
docker images 查看當前本地鏡像
啟動 mysql的docker容器
docker run -d -p 3306:3306 --name dbserver fu/mysql:5.4
返回id串,成功
docker ps 
查看是否啟動container成功
docker exec -it dbserver /bin/bash
進入container
mysql
進入db里,可用mysql指令操作啦
 show databases;
 
剛才啟動,沒有給環境變量,就是用戶與密碼,用的默訂的

刪除容器,再試一次。

docker rm 只能刪除非up狀態的
docker rm 

啟動容器 docker run -d -p 3306:3306 -v host_dir:container_dir  imageName  (host_dir:container_dir 用於宿主機與容器掛載,數據同步)
docker run -d -p 3306:3306 -v /var/lib/docker/vfs/dir/mydata:/var/lib/mysql cephere/mysql:5.4   (未設置--name 則自動生成一個name)

通過docke exec -it  [docke 容器名稱或id全或id前幾位可區分即可] /bin/bash

這次創建mysql用戶,然后刪除容器,再次創建容器,指定到掛載目錄,看數是否能將歷史自動載入進來。
create database mydb;
show databases;
exit;
exit
查看一下,docker是否創健了指定的掛在目錄。
ls /var/lib/docker/vfs/dir/mydata/
停掉容器 docker stop id
刪除mysql容器,docker rm  id
再次查看,看掛載目錄是否存在
ls /var/lib/docker/vfs/dir/mydata/

再次創建一個容器,指定到掛載的目錄,確認數據是否能夠回來
docker run -d -p 3306:3306 --name newdb -v /var/lib/docker/vfs/dir/mydata:/var/lib/mysql fu/mysql:5.4
 docker ps
 docker exec -it newdb /bin/bash
 mysql
 show databases;
 可以看到數據庫還存在
 
 創建應用
 應用里加入一個Dockerfile 和 init.sh
 .dockerignore文件,可以過濾掉,不須要copy的文件
 
 
 show databases;
 
 啟動應用容器
 docker run -d -p 80:80 --name wordpress -e WORDPRESS_DB_HOST=192.168.80.241 -e WORDPRESS_DB_USER=admin -e WORDPRESS_DB_PASSWORD=cephere2015 cephere/wordpress:4.2
 
 
 
 
 
 docker-compose up
 【
如果docker-compose --version 為無效指令,則須安裝docker-compose  組合
#下載安裝
curl -L https://github.com/docker/compose/releases/download/1.1.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
#授權
chmod +x /usr/local/bin/docker-compose
#查版本號
docker-compose --version
#當前目錄構建組合鏡像。須存在docker-compose.yml文件
docker-compose up -d
 】
 
 





免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號  © 2018-2020 CODEPRJ.COM