docker是一個容器,而運行一個容器必需要有鏡像,由於鏡像是容器的核心,咱們在docker上運行一個服務時須要經過docker run運行一個鏡像,纔可以進入到該容器中,咱們也可使用docker commit命令 將一個容器製做成一個鏡像,但注意製做一個鏡像時須要指定一個完整的鏡像名稱(鏡像名稱+版本號),它默認的版本號是latest,表示爲最新版本的鏡像,若是不寫,將默認已latest結尾。
還能夠執行docker save --output命令導出該鏡像,而當你須要下載一個服務時,可使用docker load --input 命令導入該鏡像,固然也可使用>號或者<號來導入或導出。
也能夠從docker hub公共倉庫中使用docker pull拉取鏡像,除了能夠拉取,咱們也可使用dokcer push 將本身本地的鏡像上傳到公共倉庫中。
若是在公司中是不可能將本身的鏡像上傳到公共倉庫中的,因此咱們能夠將鏡像上傳到本身內部的私有倉庫中,這個私有倉庫能夠經過官方的registry容器來進行構建,當須要下載某個服務時,也能夠從私有倉庫中使用pull命令進行拉取。mysql
//查看正在運行的容器:[root@sqm-docker01 ~]# docker ps
//查看全部容器(包括沒有正在運行的容器)[root@sqm-docker01 ~]# docker ps -a
//查看docker的信息:[root@sqm-docker01 ~]# docker info
//查找鏡像:[root@sqm-docker01 ~]# docker search mysql
//下載,拉取鏡像:[root@sqm-docker01 ~]# docker pull httpd
/保存鏡像爲tar包:[root@sqm-docker01 ~]# docker save --output my-httpd.tar httpd
或者使用:[root@sqm-docker01 ~]# docker save > httpd.tar httpd:latest
//查看本地鏡像:[root@sqm-docker01 ~]# docker images
nginx
注意:latest:表示是最新版本的鏡像,但不是絕對最新,由於TAG標籤能夠進行更改。
完整的鏡像名稱----->>> image:latest(鏡像名稱+版本號)
若是版本號默認是以latest爲結尾,能夠省略不寫。web
//刪除鏡像:[root@sqm-docker01 ~]# docker rmi httpd:latest
#加上-f選項能夠強制刪除:[root@sqm-docker01 ~]# docker rmi -f centos:latest
//刪除容器:(先中止容器後再刪除)sql
[root@sqm-docker01 ~]# docker stop my_nginx my_nginx [root@sqm-docker01 ~]# docker rm my_nginx my_nginx
一樣加上-f選項能夠強制刪除:docker
[root@sqm-docker01 ~]# docker rm -f my_nginx my_nginx
//導入鏡像:[root@sqm-docker01 ~]# docker load < my-httpd.tar
或者使用:[root@sqm-docker01 ~]# docker load --input my-httpd.tar
centos
//進入容器:bash
[root@sqm-docker01 ~]# docker exec -it test /bin/bash 或者 [root@sqm-docker01 ~]# docker attach test
注意:若是是attach進入容器,退出以後,容器會中止運行,而exec不會
exec 進入容器會開啓新的進程,attach不會(進入的仍是同一個終端)。
ctrl + p ctrl +q :若是是attach進入的容器, ctrl + p ctrl +q 退出容器,而且保持容器運行。#注意兩個快捷鍵得同時按
ide
//開啓容器:[root@sqm-docker01 ~]# docker start test
//關閉容器:[root@sqm-docker01 ~]# docker stop test
//重啓容器:[root@sqm-docker01 ~]# docker restart test
//刪除全部容器:[root@sqm-docker01 ~]# docker ps -a -q | xargs docker rm -f
//刪除全部鏡像:[root@sqm-docker01 ~]# docker images -q | xargs docker rmi -f
//開啓全部容器:[root@sqm-docker01 ~]# docker ps -a -q | xargs docker start
//關閉全部容器:[root@sqm-docker01 ~]# docker ps -a -q | xargs docker stop
rest
//查看容器的日誌:[root@sqm-docker01 ~]# docker logs test2
//實時更新日誌:[root@sqm-docker01 ~]# docker logs test2 -f
日誌
//保持容器開啓狀態(用於docker服務重啓以後)[root@sqm-docker01 ~]# docker run -itd --name test3 --restart=always httpd
--restart=always:隨着容器的重啓而重啓
//將容器製做成鏡像:[root@sqm-docker01 ~]# docker commit web01 test-web:v1.0
docker commit後面跟的是須要製做成鏡像的容器,製做成的鏡像名稱和標籤能夠自定義。
//運行容器:[root@sqm-docker01 ~]# docker run -itd --name my_nginx -p 80:80 --restart=always nginx:latest
參數解釋:
run:運行一個容器
-itd: i:可交互
t:僞終端
d:保持容器後臺運行
--name:自定義名稱爲my_nginx
- p:映射端口,宿主機端口:容器內端口
--restart=always:保持容器運行
以上是docker操做的基本命令,其餘方面的docker操做命令在後續的博客中會寫到。
———————— 本文至此結束,感謝閱讀 ————————