使用dockerfile方式建立鏡像node
使用dockerfile文件docker build dockerflle/,dockerfile文件默認位於dockerflle/Dockerfilemysql
能夠在這裏設置cgroupnginx
經過容器建立本地鏡像。注意:若是要push到docker hub中,注意生成鏡像的命名。sql
docker commit 容器id 鏡像名docker
docker commit 536f0efeeef3 centosttttjson
將容器的文件系統打包成tar文件centos
有兩種方式:bash
docker export -o mysqldb1.tarmysqldb服務器
docker export mysqldb >mysqldb.tar網絡
顯示鏡像製做的過程,至關於dockfile
docker history centostttt IMAGE CREATED CREATED BY SIZE COMMENT f2bb8fe139f0 46 minutes ago /bin/bash 1.671MB 8da04c5a9351 56 minutes ago /bin/sh -c #(nop) ENV PWD=/root/ 0 B 77d730816eed 56 minutes ago /bin/sh -c #(nop) ENV PATH=/usr/local/sbin:/ 0 B 3bee3060bfc8 13 days ago /bin/sh -c #(nop) CMD ["/bin/bash"] 0 B <missing> 13 days ago /bin/sh -c #(nop) LABEL name=CentOS Base Ima 0 B <missing> 13 days ago /bin/sh -c #(nop) ADDfile:d22a9c627d1d1f32a8 192.5 MB
列出本機的全部鏡像
根據tar文件的內容新建一個鏡像,與以前的export命令相對應
docker import mysqldb.tar mysql:v1
eb81de183cd94fd6f0231de4ff29969db822afd3a25841d2dc9cf3562d135a10
與save命令相對應,將sava命令打包的鏡像經過load命令導入
從docker hub中下載鏡像
將本地的鏡像上傳到docker hub中
前提是要先用docker login登陸上,否則會報錯誤
刪除鏡像
將鏡像打包,與上面的load命令相對應
docker save -o nginx.tar nginx
從Docker Hub中搜索鏡像
對鏡像進行重命名
將終端依附到容器上
docker attachb7a7c4bef5a5
建立一個容器。注意,此時,容器的status只是Created
能夠在這裏設置cgroup【CPU、內存、IO等等】、Capability、namespace、volume等等
docker create -c 2(最少2) --cpuset-cpus 0,2 -m 32m --memory-swap 0-w /root/(更換目錄) --blkio-weight 10 --dns 114.114.114.114--name nginx8(容器名稱) -p 宿主機端口:容器端口 -v 宿主機目錄:容器目錄--cpu-period 1000 --expose 22 --shm-size 32m -ti centos6:nginx
用於容器啓動後,執行其它的任務。
經過exec命令能夠建立兩種任務:後臺型任務和交互型任務
後臺型任務:
docker exec -d cc touch 123 其中cc是容器名
交互型任務:
docker exec -i -t cc /bin/bash
ls
123 bin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var
用於查看容器的配置信息,包含容器名、環境變量、運行命令、主機配置、網絡配置和數據卷配置等。
docker inspect 容器ID或者容器ID列表
返回一個列表(包含字典)
強制終止容器。
參數-s或--signal string:Signal to send to thecontainer (default "KILL")
用於查看容器的日誌,它將輸出到標準輸出的數據做爲日誌輸出到docker logs命令的終端上。經常使用於後臺型容器
暫停容器內的全部進程,此時,經過dockerstats能夠觀察到此時的資源使用狀況是固定不變的,經過docker logs -f也觀察不到日誌的進一步輸出。
查看容器端口與宿主機端口的映射狀況
docker port blog
80/tcp -> 0.0.0.0:80
容器blog的內部端口80映射到宿主機的80端口,這樣可經過宿主機的80端口查看容器blog提供的服務
列出全部容器,其中dockerps用於查看正在運行的容器,ps -a則用於查看全部容器。
更改容器的名字
重啓容器
刪除容器,注意,刪除一個運行中的容器,必須加-f參數
若是要一次性刪除全部容器,可以使用docker rm -f `docker ps -a -q`,其中,-q指的是隻列出容器的ID
讓建立的容器馬上進入運行狀態,該命令等同於docker create建立容器後再使用docker start啓動容器
能夠在這裏設置cgroup【CPU、內存、IO等等】、Capability、namespace、volume等等
啓動容器
動態顯示容器的資源消耗狀況,包括:CPU、內存、網絡I/O
中止一個運行的容器
查看容器中正在運行的進程
恢復容器內暫停的進程,與pause參數相對應
捕捉容器中止時的退出碼
執行此命令後,該命令會「hang」在當前終端,直到容器中止,此時,會打印出容器的退出碼。
Updateconfiguration of one or more containers
升級一個或者多個容器配置,主要是cgroup
在容器和本地文件系統上拷貝文件【夾】
docker cp [OPTIONS]CONTAINER:SRC_PATH DEST_PATH|-
dockercp [OPTIONS] SRC_PATH|- CONTAINER:DEST_PATH
docker cp tta49d7ca21839:/root/
docker cpa49d7ca21839:/root/test/ ./
對比容器的文件變化狀況
dockerdiff a49d7ca21839
Manage Dockervolumes
實時或者指定時間戳輸出Docker服務器端的事件,包括容器的建立,啓動,關閉等。
查看docker的系統信息
登陸到本身的Dockerregister,需有Docker Hub的註冊帳號
docker login
Username: ivictor
Password:
Email: xxxx@foxmail.com
WARNING: login credentials saved in /root/.docker/config.json
Login Succeeded
退出登陸
docker logout
Remove logincredentials for https://index.docker.io/v1/
查看docker的版本
Manage Dockernetworks
docker網絡管理
Manage DockerSwarm nodes
Manage Docker services
Manage DockerSwarm
docker stop命令給容器中的進程發送SIGTERM信號,默認行爲是會致使容器退出,固然,容器內程序能夠捕獲該信號並自行處理,例如能夠選擇忽略。
docker kill則是給容器的進程發送SIGKILL信號,該信號將會使容器必然退出。
docker wait捕捉容器中止時的退出碼。執行此命令後,該命令會「hang」在當前終端,直到容器中止,此時,會打印出容器的退出碼。
create只是建立容器,沒有啓動。能夠配置cgroup
start是啓動容器
run是建立並啓動容器,run=create+start。能夠配置cgroup
exec
在啓動的容器上執行命令,能夠分爲後臺和交互式。
交互式執行相似attach,但退出以後不會結束容器。
attach
在容器上附屬一個終端,退出以後可能會結束容器(容器啓動命令爲/etc/bash)