日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Ubuntu >内容正文

Ubuntu

ubuntu安装、使用docker超级详细的入门教程

發布時間:2024/3/24 Ubuntu 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ubuntu安装、使用docker超级详细的入门教程 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

docker安裝

  • 查看官網(https://docs.docker.com/get-docker),根據系統版本安裝。
  • 刪除老版本

    sudo apt-get remove docker docker-engine docker.io containerd runc
  • 設置儲存庫

    sudo apt-get install \ ca-certificates \ curl \ gnupg \ lsb-release
  • 添加官方秘鑰

    sudo mkdir -p /etc/apt/keyrings curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
  • 授權docker并更新apt

    sudo chmod a+r /etc/apt/keyrings/docker.gpgsudo apt-get update
  • 安裝最新docker

    sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin
  • 試運行

    sudo docker run hello-world

  • docker卸載

  • 卸載應用

    sudo apt-get purge docker-ce docker-ce-cli containerd.io docker-compose-plugin
  • 刪除目錄

    sudo rm -rf /var/lib/docker sudo rm -rf /var/lib/containerd
  • 默認路徑

    /var/lib/docker
  • 更換docker源

  • 登錄阿里云平臺(支付寶就能登錄)

  • 找到容器鏡像服務
    控制臺-產品與服務-彈性計算-容器鏡像服務

  • 找到鏡像加速器
    容器鏡像服務-鏡像工具-鏡像加速器

  • 找到相關文檔,配置使用

    sudo mkdir -p /etc/docker sudo tee /etc/docker/daemon.json <<-'EOF' { "registry-mirrors": ["https://*********.mirror.aliyuncs.com"] # 這里的地址每個人都有自己的} EOF sudo systemctl daemon-reload sudo systemctl restart docker
  • Docker的常用命令

    幫助命令

    • 查看信息

      docker version # 顯示docker版本信息docker info # 顯示docker的系統信息,包括鏡像和容器的數量docker 命令 --help # 幫助命令 例如: docker images --help
      • 幫助文檔地址:https://docs.docker.com/engine/reference/commandline/docker/

    鏡像命令

    • 查看鏡像命令

      docker images# 可選項-a, --all # 列出所有鏡像-q, --quiet 只顯示鏡像的id
    • 搜索鏡像

      docker search # 可選項 --filter=Stars=3000 # 搜索出來的就是start大于3000的 # 例如搜索星數量大于3000的:root@mediaServer:~# docker search mysql --filter=stars=3000NAME DESCRIPTION STARS OFFICIAL AUTOMATEDmysql MySQL is a widely used, open-source relation… 13622 [OK]mariadb MariaDB Server is a high performing open sou… 5202 [OK]
    • 下載鏡像

      docker pull [:tag] # 例如root@mediaServer:~# docker pull mysqlUsing default tag: latest # 不寫 tag,則默認是 latest (最新版)latest: Pulling from library/mysql72a69066d2fe: Pull complete # 這里是分層下載,docker image的核心 -聯合文件系統93619dbc5b36: Pull complete # 通過聯合文件系統,不同版本間會有相同的分層,相同分層可以共用,極大的節省空間99da31dd6142: Pull complete626033c43d70: Pull complete37d5d7efb64e: Pull completeac563158d721: Pull completed2ba16033dad: Pull complete688ba7d5c01a: Pull complete00e060b6d11d: Pull complete1c04857f594f: Pull complete4d7cfa90e6ea: Pull completee0431212d27d: Pull completeDigest: sha256:e9027fe4d91c0153429607251656806cc784e914937271037f7738bd5b8e7709 # 簽名Status: Downloaded newer image for mysql:latestdocker.io/library/mysql:latest # 真實地址# docker pull mysql 等價于 docker pull docker.io/library/mysql:latest# 如果要下載指定版本,將tag換成版本號,版本號需要在docker hub中存在 # docker hub地址 https://hub.docker.com/# 例如 指定版本號 root@mediaServer:~# docker pull mysql:5.75.7: Pulling from library/mysql # 指定的5.7版本72a69066d2fe: Already exists # 共用分層,不用下載93619dbc5b36: Already exists99da31dd6142: Already exists626033c43d70: Already exists37d5d7efb64e: Already existsac563158d721: Already existsd2ba16033dad: Already exists0ceb82207cd7: Pull complete37f2405cae96: Pull completee2482e017e53: Pull complete70deed891d42: Pull completeDigest: sha256:f2ad209efe9c67104167fc609cca6973c8422939491c9345270175a300419f94Status: Downloaded newer image for mysql:5.7docker.io/library/mysql:5.7# 下載完畢后使用docker images可以查看當前docker擁有鏡像root@mediaServer:~# docker imagesREPOSITORY TAG IMAGE ID CREATED SIZEmysql 5.7 c20987f18b13 12 months ago 448MB # 5.7版本mysqlmysql latest 3218b38490ce 12 months ago 516MB # 最新版mysqlhello-world latest feb5d9fea6a5 15 months ago 13.3kB # 之前測試時下載的鏡像
    • 刪除鏡像

      docker rmi -f 鏡像id # 刪除指定容器,rmi中的i理解成image,比較容易記憶docker rmi -f 鏡像id 鏡像d 鏡像id 鏡像id #刪除多個鏡像docker rmi -f $(docker images -aq) # 刪除全部鏡像# 刪除全部鏡像root@mediaServer:~# docker rmi -f $(docker images -aq) #括號中可使用鏡像id查詢命令root@mediaServer:~# docker imagesREPOSITORY TAG IMAGE ID CREATED SIZE

    容器命令

    • 說明:有了鏡像后才能創建容器,下載一個centerOS鏡像來測試

      docker pull centos
    • 新建容器并啟動

      docker run [可選參數] image# 參數說明--name="Name" 容器名字 tomcat01 tomcat02,用來區分容器-d 后臺方式運行-it 使用交互方式運行,進入容器查看內容-p 指定容器的端口 -p 8080:8080-p ip:主機端口:容器端口-p 主機端口:容器端口(常用)-p 容器端口容器端口-P 隨機指定端口# 例如,啟動并進入容器root@mediaServer:~# docker run -it centos /bin/bash[root@031b6283750a /]# ls # 查看容器內的centos,基礎版本,很多容器都是不完善的!bin dev etc home lib lib64 lost+found media mnt opt proc root run sbin srv sys tmp usr var# 從容器中退出[root@f7ac477f37cc /]# exitexitroot@mediaServer:/# ls # 這里主機版本是ubuntu,鏡像版本centeros,可以看出目錄是不一樣的bin boot cdrom dev etc home initrd.img initrd.img.old lib lib64 lost+found media mnt opt proc root run sbin snap srv swapfile sys tmp usr var vmlinuz vmlinuz.old
    • 列出所有的運行的容器

      # docker ps 命令 --列出當前正在運行的容器-a # 列出當前正在運行的容器 + 歷史運行過的容器-m=? # 顯示最近創建的容器-q # 只顯示容器的編號 # 舉例 root@mediaServer:/# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES root@mediaServer:/# docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES f7ac477f37cc centos "/bin/bash" 8 minutes ago Exited (0) 8 minutes ago naughty_banzai 031b6283750a centos "/bin/bash" 11 minutes ago Exited (130) 9 minutes ago quizzical_merkle
    • 退出容器

      exit # 直接容器停止并退出 Ctrl + p + Ctrl + q # 容器不停止退出 # 舉例 退出不停止root@mediaServer:/# docker run -it centos /bin/bash [root@39160141a464 /]# root@mediaServer:/#
    • 刪除容器

      docker rm 容器id # 刪除指定容器,不能刪除正在運行的容器,如果要強制刪除添加 -f docker rm (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 鏡像名! root@mediaServer:~# docker run -d centos 37d229c7fedaf7d65b83ea19027e9135b9f6eb5e6d545cc94d64dd86724d7c38 root@mediaServer:~# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES # 問題docker ps,發現centos停止了 # 常見的坑,docker 容器使用后臺運行,就必須要有一個前臺進程,docker發現沒有應用,就會自動停止 # nginx,容器啟動后,發現自己沒有提供服務,就會立刻停止,就是沒有程序了
    • 查看日志

      # 啟動容器,為了顯示日志, -c 后面添加一段可執行的shell腳本 root@mediaServer:~# docker run -d centos /bin/sh -c "while true;do echo kuangshen;sleep 1;done" 88fc27d4690887e96dce9ba923c5fb9e90326292be9fa70e80a3d7520794c8d8 root@mediaServer:~# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 88fc27d46908 centos "/bin/sh -c 'while t…" 5 seconds ago Up 4 seconds admiring_mendel # 顯示日志 docker logs -f -t --tail number 容器id-tf # 顯示日志-tail number # 要顯示的日志條數 number 條數 root@mediaServer:~# docker logs -tf --tail 10 88fc27d46908 2022-12-30T01:57:20.130177221Z kuangshen 2022-12-30T01:57:21.134535761Z kuangshen 2022-12-30T01:57:22.140011966Z kuangshen 2022-12-30T01:57:23.145330842Z kuangshen 2022-12-30T01:57:24.148903390Z kuangshen 2022-12-30T01:57:25.154288654Z kuangshen ...
    • 查看容器中進程信息

      # 命令 docker top 容器id root@mediaServer:~# docker top e1f35e5177e3 UID PID PPID C STIME TTY TIME CMD root 66679 66651 0 10:05 pts/0 00:00:00 /bin/bash
    • 查看容器中的元數據

      # 命令 docker inspect 容器id # 例如 root@mediaServer:~# docker inspect e1f35e5177e3 [{"Id": "e1f35e5177e387ea5f8da2f906c686e26a80b4deef458d8a4a0a2271b32ad757","Created": "2022-12-30T02:05:28.75979358Z","Path": "/bin/bash","Args": [],"State": {"Status": "running","Running": true,"Paused": false,"Restarting": false,"OOMKilled": false,"Dead": false,"Pid": 66679,"ExitCode": 0,"Error": "","StartedAt": "2022-12-30T02:05:29.214918372Z","FinishedAt": "0001-01-01T00:00:00Z"},...} ]
    • 進入當前正在運行的容器

      # 我們通常容器都是使用后臺方式運行的,需要進入容器,修改一些配置# 命令1 docker exec -it 容器id # 例如 root@mediaServer:~# docker exec -it e1f35e5177e3 /bin/sh sh-4.4# ls bin dev etc home lib lib64 lost+found media mnt opt proc root run sbin srv sys tmp usr var sh-4.4# ps -ef UID PID PPID C STIME TTY TIME CMD root 1 0 0 02:05 pts/0 00:00:00 /bin/bash root 15 0 0 02:18 pts/1 00:00:00 /bin/sh root 22 15 0 02:18 pts/1 00:00:00 ps -ef# 命令2 docker attach 容器id # 例如 root@mediaServer:~# docker attach e1f35e5177e3 [root@e1f35e5177e3 /]# ls bin dev etc home lib lib64 lost+found media mnt opt proc root run sbin srv sys tmp usr var# docker exec # 進入容器后開啟一個新的終端,可以在里面操作(常用) # docker attach # 進入容器正在執行的終端,不會啟動新的進程
    • 從容器內拷貝文件到主機上

      # 查看當前主機/home下的文件目錄 root@mediaServer:/home# ls administrator kuangshen.java root@mediaServer:/home# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES e1f35e5177e3 centos "/bin/bash" 42 minutes ago Up 42 minutes vigilant_leavitt# 進入docker內部 root@mediaServer:/home# docker attach e1f35e5177e3 [root@e1f35e5177e3 /]# cd /home/ [root@e1f35e5177e3 home]# ls# 在home文件夾下新建一個文件 [root@e1f35e5177e3 home]# touch test.java [root@e1f35e5177e3 home]# ls test.java [root@e1f35e5177e3 home]# exit exit# 將文件拷貝出來到主機上 root@mediaServer:/home# docker cp e1f35e5177e3:/home/test.java /home root@mediaServer:/home# ls administrator kuangshen.java test.java root@mediaServer:/home## 拷貝是一個手動過程,未來我們使用 -v 卷的技術,可以實現同步

    鏡像

    • 鏡像是什么

      鏡像是一種輕量級、可執行的獨立軟件包,用來打包軟件運行環境和基于運行環境開發的軟件,它包含運行某個軟件所需的所有內容,包括代碼、運行時、庫、環境變量和配置文件。
      所有的應用,直接打包docker鏡像,就可以直接跑起來!
      如何得到鏡像:

      • 從遠程倉庫下載
      • 朋友拷貝給你
      • 自己制作一個鏡像DockerFile
    • commit鏡像

      1. # 提交容器成為一個新的副本 2. docker commit 3. # 命令和git原理類似 4. docker commit -m="提交的描述信息" -a="作者" 容器id 目標鏡像名:[TAG]

    ? 如果你想要保存當前容器的狀態,就可以通過commit來提交,獲得一個鏡像,就虛擬機的快照!

    常用命令小結

    • attach 容器id # 進入容器正在執行的終端,不會啟動新的進程
    • cp # 從容器內拷貝文件到主機上
    • Ctrl + p + Ctrl + q # 容器不停止退出
    • exec -it 容器id # 進入容器后開啟一個新的終端,可以在里面操作(常用)
    • exit # 直接容器停止并退出
    • images # 查看鏡像
    • info # 顯示docker的系統信息,包括鏡像和容器的數量
    • inspect 容器id # 查看容器中的元數據
    • kill 容器id # 殺掉容器
    • logs # 查看容器日志
    • ps # 列出所有的運行的容器
    • pull [:tag] # 下載鏡像
    • restart 容器id # 重啟容器
    • rm 容器id # 刪除指定容器
    • rmi [鏡像id] # 刪除鏡像
    • run [可選參數] 鏡像 # 從一個鏡像啟動容器
    • search 鏡像名 # 搜索鏡像
    • start 容器id # 啟動一個容器
    • stop 容器id # 停止容器
    • top 容器id # 查看容器中的進程信息
    • version # 顯示docker版本信息

    參考

    • 【狂神說java】Docker教程
      https://www.kuangstudy.com/bbs/1552836707509223426

    總結

    以上是生活随笔為你收集整理的ubuntu安装、使用docker超级详细的入门教程的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。