目前 Hub Docker (https://hub.docker.com/) 上有需多 images 可以 pull 下來,這樣一來可以省去你去放光碟片,一步一步安裝你要的軟體。
使用 docker pull centos:latest
centos(為提供者):latest(為最新版號,你也可以指定你要的版本)
[root@localhost]# docker pull centos Using default tag: latest latest: Pulling from library/centos 8a29a15cefae: Pull complete Digest: sha256:fe8d824220415eed5477b63addf40fb06c3b049404242b31982106ac204f6700 Status: Downloaded newer image for centos:latest
使用 docker images
查看你目前本地有那些images 檔
[root@localhost]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE centos latest 470671670cac 2 weeks ago 237MB
使用 docker run
docker run -it -v /var:/var -p 80:80 -d --name cantos-server centos:latest bash
[root@localhost]# docker run -it -v /var:/var -d --name cantos-server -p 80:80 centos:latest bash run:標準的Docker建立Container並執行指令 -v:使得 Container 裡面的檔案路徑Mapping 到實體主機的檔案路徑。 -t:attach時Container的螢幕會接到原來的螢幕上。 -i:attach時鍵盤輸入會被Container接手。 -d:run指令的無數值參數,背景執行。 --name cantos-server:run指令的文字參數,指定這個Container的名字為cantos-server。 -p 80:80:run指令的數值參數,把主機的80通訊埠所有流量轉發到cantos-server這個Container的80通訊埠。 centos:latest:run指令的文字參數,使用centos:latest來填入web這個Container。 Docker用指令加參數就可以完成99%的動作,非常方便。
docker ps -a
查看目前運行中的 docker
[root@localhost]# docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES faad74610808 centos:latest "bash" 5 minutes ago Up 3 minutes centos-server
docker exec -it centos-server bash
進入你的 docker container,執行指令的操作
[root@localhost]# docker exec -it centos-server bash [root@faad74610808 /]# cd /var/www/
docker commit centos-server centos:v8.1.2
將你的 docker container 調整後的版本,加上版號
docker commit [option] <容器ID或容器名> [<倉庫名>[:<標簽>]]
# docker commit \ --author "作者資訊" \ --message "調整說明" \ centos:v2.0.1
[root@localhost]# docker commit centos-server centos:v8.1.2 [root@localhost]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE centos v8.1.2 470671670cac About an hour ago 237MB centos latest 470671670cac 2 weeks ago 237MB
docker push centos:v8.1.2
上傳修正後的版本至 Hub Docker
[root@localhost]# docker push centos:v8.1.2 The push refers to repository [docker.io/_/centos] 06de3346e44f: Layer already exists v8.1.1: digest: sha256:360f2a03128fa4d2bb0fasdfa1612cc3127fe0a56a37bacd2fdc88f51e25045 size: 529
docker rmi centos:latest
刪除你本地的 image 檔
[root@localhost]# docker rmi centos:latest Untagged: centos:latest Untagged: centos@sha256:fe8d824220415eed5477b63addf40fb06c3b049404242b31982106ac204f6700 Deleted: sha256:470671670cac686c7cf0081e0b37da2e9f4f768ddc5f6a26102ccd1c6954c1ee Deleted: sha256:0683de2821778aa9546bf3d3e6944df779daba1582631b7ea3517bb36f9e4007