透過前文(https://www.cnblogs.com/jilodream/p/18177695)的瞭解,我們已經大致明白了什麼是docker,為什麼要用docker,以及docker的基本設計思路是什麼。
今天來看下,docker的基本操作有哪些?
1、linux下安裝docker
首先我們來安裝docker,
如下是使用centos 7的安裝辦法,其他系統可以自行搜尋,都不是很複雜
1 [root@iZ2ze3bpa0o5cw6gp42ry2Z ~]# yum -y install docker 2 Loaded plugins: fastestmirror 3 Determining fastest mirrors 4 base | 3.6 kB 00:00:00 5 docker-ce-stable | 3.5 kB 00:00:00 6 epel | 4.3 kB 00:00:00 7 extras | 2.9 kB 00:00:00 8 kubernetes | 1.4 kB 00:00:00 9 updates | 2.9 kB 00:00:00 10 (1/6): epel/x86_64/updateinfo | 1.0 MB 00:00:00 11 (2/6): epel/x86_64/primary_db | 8.7 MB 00:00:00 12 (3/6): extras/7/x86_64/primary_db | 253 kB 00:00:00 13 (4/6): epel/x86_64/group | 399 kB 00:00:00 14 (5/6): updates/7/x86_64/primary_db | 27 MB 00:00:00 15 (6/6): docker-ce-stable/7/x86_64/primary_db | 148 kB 00:00:00 16 17 後續省略
安裝好docker之後,透過檢測docker版本的辦法,檢視docker 是否已經安裝成功。
1 [root@iZ2ze3bpa0o5cw6gp42ry2Z ~]# docker -v 2 Docker version 26.0.0, build 2ae903e
在安裝完docker 之後,如果是國內伺服器的話,我們常常還需要配一個國內的docker倉庫映象地址:vi /etc/docker/daemon.json
1 vi /etc/docker/daemon.json 2 3 #填寫如下json資訊 4 { 5 "registry-mirrors": ["https://hnkfbj7x.mirror.aliyuncs.com"], 6 "exec-opts": ["native.cgroupdriver=systemd"] 7 } 8 9 10 # wq 儲存檔案後 11 #儲存ok之後,重啟docker 服務 12 systemctl restart docker
2、查詢docker 映象
安裝好docker 之後,我們來檢視映象,我們以tomcat為例
如下,查詢出相應的映象:
1 [root@iZ2ze3bpa0o5cw6gp42ry2Z ~]# docker search tomcat 2 NAME DESCRIPTION STARS OFFICIAL 3 tomcat Apache Tomcat is an open source implementati… 3667 [OK] 4 tomee Apache TomEE is an all-Apache Java EE certif… 115 [OK] 5 bitnami/tomcat Bitnami container image for Tomcat 50
3、獲取docker映象
確定好有所需映象後(不是必要操作),我們直接拉取映象:
1 [root@iZ2ze3bpa0o5cw6gp42ry2Z ~]# docker pull tomcat 2 Using default tag: latest 3 latest: Pulling from library/tomcat 4 0e29546d541c: Pull complete 5 9b829c73b52b: Pull complete 6 cb5b7ae36172: Pull complete 7 6494e4811622: Pull complete 8 668f6fcc5fa5: Pull complete 9 dc120c3e0290: Pull complete 10 8f7c0eebb7b1: Pull complete 11 77b694f83996: Pull complete 12 0f611256ec3a: Pull complete 13 4f25def12f23: Pull complete 14 Digest: sha256:9dee185c3b161cdfede1f5e35e8b56ebc9de88ed3a79526939701f3537a52324 15 Status: Downloaded newer image for tomcat:latest 16 docker.io/library/tomcat:latest
如上就代表我們已經將映象拉去到本地了。
4、檢視本地docker 映象
有時我們需要檢視一下本地是否已經有拉取好的某個映象,可以如下操作:
第一列為映象名稱
第二列為tag,相當於版本號,一般latest為最新版,預設下載的映象,都是最新版,如果想指定映象tag則可以使用
docker pull 映象名:tag 的形式拉取
第三列為映象id,如果相同,則可以說明這兩個映象是相同的
第四列為映象的建立時間(防盜連線:本文首發自http://www.cnblogs.com/jilodream/ )
第五列映象的大小
1 [root@iZ2ze3bpa0o5cw6gp42ry2Z ~]# docker images 2 REPOSITORY TAG IMAGE ID CREATED SIZE 3 tomcat latest fb5657adc892 2 years ago 680MB 4 gcr.io/kuar-demo/kuard-amd64 blue 1db936caa6ac 5 years ago 23MB 5 gcr.io/kuar-demo/kuard-amd64 latest 1db936caa6ac 5 years ago 23MB
5、執行docker容器
映象下載好之後,如果想要執行,我們需要建立相應的容器:
docker run 為執行容器命令
-d 代表後臺執行
-p 表示埠對映,也就是將本機的4321埠,對映到容器的8080埠(tomcat預設埠),這樣當外界請求訪問本機時,會自動請求到容器的8080埠上
--name 表示容器的名稱,
tomcat 表示使用的映象為tomcat(如有多個需要指定tag版本號)
建立好之後會給我們返回一個隨機的字串。
1 [root@iZ2ze3bpa0o5cw6gp42ry2Z ~]# docker run -d -p 4321:8080 --name mytomcat01 tomcat 2 127ce6e75e9c62c84bea139ff7e14e9c5cb0f55554430c9265ce9cb74a160bd1
6、檢視docker容器,詳細資訊
啟動好tomcat 容器後,我們來檢視容器的狀態
1 [root@iZ2ze3bpa0o5cw6gp42ry2Z ~]# docker ps 2 CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 3 127ce6e75e9c tomcat "catalina.sh run" 7 minutes ago Up 7 minutes 0.0.0.0:4321->8080/tcp mytomcat01
注意這裡只能看到部分執行中容器,有時我們想要看已經停止的容器,可以使用
docker ps -a
除此之外,我們還可以使用docker inspect 的命令來檢視容器更詳細的內容,不過這個命令暫時我們用不到,先跳過。
7、進入docker 容器
建立好tomcat容器之後,我們需要進入到容器中進入操作:
進入容器的命令如下:
docker exec -it 容器id 執行命令,
其中 -it 表示互動式操作 ,執行命令表示進入容器後,先行的執行命令,因為我們都是要做後續bash操作,所以一般都是接 /bin/bash 或者 /bin/sh
進入以後就是一個微型的linux虛擬機器了,我們修改下tomcat的webapps檔案,保證tomcat可以正常可用
1 [root@iZ2ze3bpa0o5cw6gp42ry2Z ~]# docker exec -it 127ce6e75e9c /bin/bash 2 root@127ce6e75e9c:/usr/local/tomcat# ls 3 BUILDING.txt LICENSE README.md RUNNING.txt conf logs temp webapps.dist 4 CONTRIBUTING.md NOTICE RELEASE-NOTES bin lib native-jni-lib webapps work 5 root@127ce6e75e9c:/usr/local/tomcat# rm -rf webapps 6 root@127ce6e75e9c:/usr/local/tomcat# mv webapps.dist webapps 7 root@127ce6e75e9c:/usr/local/tomcat# exit
注意退出容器後,我們使用exit命令退出。之後我們透過瀏覽器,訪問我們建立的tomcat容器:(防盜連線:本文首發自http://www.cnblogs.com/jilodream/ )
http://linux宿主機Ip:4321/
8、停止、重啟docker容器
這三個命令就不講了,很簡單
docker stop 容器id
docker restart 重啟id
docker start 啟動停止狀態的容器
9、刪除docker容器、映象
清理磁碟空間或出於安全原因,我們通常需要移除映象和容器
docker rm 容器id #使用此命令來移除容器
docker rmi 映象id #使用此命令來移除映象
注意移除映象前,必須要先移除掉所有直接使用該映象的容器,否則會刪除不成功(防盜連線:本文首發自http://www.cnblogs.com/jilodream/ )
10、修改映象tag
我們通常會修改映象tag 來適配版本釋出的節奏
docker tag 映象id 映象名稱:新tag
1 [root@iZ2ze3bpa0o5cw6gp42ry2Z ~]# docker tag fb5657adc892 tomcat:my-tomcat-image 2 [root@iZ2ze3bpa0o5cw6gp42ry2Z ~]# docker images 3 REPOSITORY TAG IMAGE ID CREATED SIZE 4 tomcat latest fb5657adc892 2 years ago 680MB 5 tomcat my-tomcat-image fb5657adc892 2 years ago 680MB
注意看兩個映象的映象id是一致的,但是映象tag不一樣
上述就是docker 最基本的一些操作,彙總來看就是這個樣子:
映象版:
容器版:
docker的命令還有很多,而且我介紹的命令也是這些操作中最常用的用法。由於篇幅和能力有限無法全面介紹到,大家有需要只能根據實際需要自行搜尋,或者help檢視文件