Docker基本组成 和 基本命令
生活随笔
收集整理的這篇文章主要介紹了
Docker基本组成 和 基本命令
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
此篇為Docker筆記,文章可能存在疏忽,建議直接觀看原視頻。
視頻地址:https://www.bilibili.com/video/BV1og4y1q7M4?spm_id_from=333.999.0.0
Docker基本組成 和 基本命令
- 鏡像 image:就好比一個模板,可以通過這個模板創(chuàng)建容器服務(wù)。例如:tomcat鏡像===>run===>tomcat容器(提供服務(wù)),通過這個鏡像可以創(chuàng)建多個容器(最終服務(wù)/項目運行就是在容器中);
- 容器 container:Docker運用容器技術(shù),運行一個或一組應用;操作:啟動、停止、刪除;
- 倉庫 repository:存放鏡像的地方;公有倉庫、私有倉庫;
測試安裝成功
使用幫助:https://docs.docker.com/engine/reference/commandline/cli/
常用命令
鏡像和容器的區(qū)別?
簡單點說,鏡像就類似操作系統(tǒng)光盤介質(zhì),容器相當于通過光盤安裝后的系統(tǒng)。通過光盤(鏡像),我們能在不同機器上部署系統(tǒng)(容器),系統(tǒng)內(nèi)的操作只會保留在當前的系統(tǒng)(容器)中,如果要升級系統(tǒng),需要使用到光盤,但是可能會導致操作系統(tǒng)的數(shù)據(jù)丟失
鏡像命令
docker images
$ docker images REPOSITORY TAG IMAGE ID CREATED SIZE hello-world latest feb5d9fea6a5 4 days ago 13.3kB #只顯示image id $ docker images -q feb5d9fea6a5docker search 查詢 (或者直接在dockerhub上查詢)
$ docker search mysql NAME DESCRIPTION STARS OFFICIAL AUTOMATED mysql MySQL is a widely used, open-source relation… 11480 [OK] mariadb MariaDB Server is a high performing open sou… 4356 [OK] mysql/mysql-server Optimized MySQL Server Docker images. Create… 849 [OK] # 可選項 --filter=STARS=4000 # 過濾 STARS大于4000的鏡像docker pull 下載
# 默認下載最新版 [:tag]指定版本 docker pull mysql:5.7 $ docker pull mysql Using default tag: latest latest: Pulling from library/mysql 07aded7c29c6: Pull complete # 分層下載 docker image的核心 聯(lián)合文件系統(tǒng) f68b8cbd22de: Pull complete 30c1754a28c4: Pull complete 1b7cb4d6fe05: Pull complete 79a41dc56b9a: Pull complete 00a75e3842fb: Pull complete b36a6919c217: Pull complete 635b0b84d686: Pull complete 6d24c7242d02: Pull complete 5be6c5edf16f: Pull complete cb35eac1242c: Pull complete a573d4e1c407: Pull complete Digest: sha256:4fcf5df6c46c80db19675a5c067e737c1bc8b0e78e94e816a778ae2c6577213d # 簽名 Status: Downloaded newer image for mysql:latest docker.io/library/mysql:latest # docker pull mysql 等價于 docker pull docker.io/library/mysql:latest$ docker pull mysql:5.7 5.7: Pulling from library/mysql 07aded7c29c6: Already exists # 已經(jīng)存在的資源不會重復下載 f68b8cbd22de: Already exists 30c1754a28c4: Already exists 1b7cb4d6fe05: Already exists 79a41dc56b9a: Already exists 00a75e3842fb: Already exists b36a6919c217: Already exists 5e11fe494f45: Pull complete 9c7de1f889a7: Pull complete cf6a13d05a76: Pull complete fc5aa81f393a: Pull complete Digest: sha256:360c7488c2b5d112804a74cd272d1070d264eef4812d9a9cc6b8ed68c3546189 Status: Downloaded newer image for mysql:5.7 docker.io/library/mysql:5.7docker rmi 刪除
$ docker rmi -f 鏡像id 鏡像id $ docker rmi -f $(docker iamges -aq) # $()傳遞參數(shù),表示刪除全部鏡像容器命令
有了鏡像才可以創(chuàng)建容器,下載一個centos鏡像來測試。
$ docker pull centos新建容器并啟動
$ docker run [可選參數(shù)] imageId # 參數(shù)說明 --name="Name" 容器名稱 -d 后臺運行方式 -it 使用交互方式運行,進入容器查看內(nèi)容 -p 指定容器端口-p ip:主機端口:容器端口-p 主機端口:容器端口-p 容器端口容器端口 -P 隨機指定端口# 啟動并進入容器 -it 以交互的方式運行 [root@zcz /]$ docker run -it centos [root@46e93dbe3361 /]# ls bin dev etc home lib lib64 lost+found media mnt opt proc root run sbin srv sys tmp usr var [root@46e93dbe3361 /]# exit列出運行中的容器
#docker ps-a # 正在運行的容器 + 曾經(jīng)運行的容器-n=? # 最近創(chuàng)建的容器-q # 顯示正在運行的容器id $ docker ps $docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 46e93dbe3361 centos "/bin/bash" 4 minutes ago Exited (0) 2 minutes ago goofy_gagarin f1e91564c179 hello-world "/hello" 24 hours ago Exited (0) 24 hours ago distracted_chaplygin退出容器
exit # 退出并停止容器 Ctrl + P + Q # 退出容器,但不停止刪除容器
$ docker rm 容器id 容器id # 不能刪除運行中的容器,可以使用-f強制刪除 $ docker rm -f $(docker ps -aq) # 刪除所有容器 $ docker ps -a -q|xargs docker rm啟動和停止容器
$ docker start 容器id $ docker restart 容器id $ docker stop 容器id $ docker kill 容器id # 強制停止其他命令
后臺啟動
# 通過鏡像啟動容器 $ docker run -d centos # 常見的坑:后臺啟動之后,docker ps發(fā)現(xiàn)centos停止了,why? # 容器后臺運行,就必須要有一個前臺程序,docker發(fā)現(xiàn)沒有應用,就會停止。查看CPU狀態(tài)
$ docker stats查看日志
$ docker logs -ft --tail 10 容器id查看容器中進程信息
$ docker top 容器id查看鏡像元數(shù)據(jù)
$ docker inspect 鏡像id進入當前正在運行的容器
# 通常容器都是以后臺方式運行,有時需要進入容器,修改一些配置 $ docker exec -it 容器id /bin/bash # 進入容器之后開啟一個新的終端 # 方式二 $ docker attach 容器id # 進入容器正在執(zhí)行的終端,不會啟動新進程從容器拷貝文件到主機
$ docker cp 容器id:容器內(nèi)路徑 目的主機路徑 # 后期可以使用卷的技術(shù)實現(xiàn)一個同步 [root@0c219b26f861 /]# cd home/ [root@0c219b26f861 home]# ls [root@0c219b26f861 home]# touch hello.go [root@0c219b26f861 home]# ls hello.go [root@0c219b26f861 home]# exit exit root@zcz:/home$ docker cp 0c219b26f861:/home/hello.go /home/ root@zcz:/home$ ls hello.go zhuchangzhen小結(jié)
總結(jié)
以上是生活随笔為你收集整理的Docker基本组成 和 基本命令的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 金山wps的云文档删除文档
- 下一篇: Docker镜像讲解