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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

学习笔记(一)---Docker概述

發布時間:2023/12/18 编程问答 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 学习笔记(一)---Docker概述 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Docker概述

Docker安裝

Docker命令

容器的數據卷

容器數據庫

DockerFile

網絡

IDEA整合Docker

集群Docker compose

Docker swarm=簡化版的k8s

CICD

Docker為什么會出現?

  • 應用在我的環境運行有問題,到你的環境怎么就運行不了了?項目能不能跟著環境一塊打包?
  • 版本更新導致服務不可用?
  • es hadoop mysql jdk配置太麻煩了 不能跨環境

Docker解決哪些問題

  • 開發人員把jar包+環境打包成一個鏡像->把鏡像放到倉庫,運維人員只需要下載我們發布的鏡像,直接運行即可(docker鏡像:jdk+mysql+最核心的環境)
  • 打包裝箱 每個箱子都是隔離的 通過隔離機制可以將服務器利用到極致

Docker的好處

  • 秒級啟動
  • 比虛擬機更輕量級

?Docker的名詞

  • 鏡像(image):好比是一個模板,可以通過這個鏡像來創建容器服務,通過鏡像可以創建多個容器,最終運行是在容器里的;
  • 容器(container):容器是通過鏡像來創建的,容器可以啟動、刪除、停止等;
  • 倉庫(repository):倉庫就是用來存放鏡像的地方;倉庫分為共有倉庫和私有倉庫。

安裝Docker

1. 卸載舊的版本

$ sudo yum remove docker \docker-client \docker-client-latest \docker-common \docker-latest \docker-latest-logrotate \docker-logrotate \docker-engine

2. 下載安裝包

$ yum install -y yum-utils

3. 設置鏡像倉庫(這里采用阿里云的,國外的太慢了。。。)

$ yum-config-manager \--add-repo \http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

4. 更新yum索引

$ yum makecache fast

5. 安裝docker

$ yum install docker-ce docker-ce-cli containerd.io

6. 確定是否安裝成功

$ docker version

7. 啟動docker

$ systemctl start docker

8. 測試hello-world

$ docker run hello-world

到這一步,docker就安裝完成了!!!

9. 查看下載的鏡像

$ docker images

10. 卸載docker

#1. 卸載依賴 $ yum remove docker-ce docker-ce-cli containerd.io #2. 刪除docker資源(docker的默認工作路徑:/var/lib/docker) $ rm -rf /var/lib/docker

?11. 配置鏡像加速器(通過修改daemon配置文件/etc/docker/daemon.json來使用加速器)---具體步驟可查看阿里云官網-容器鏡像服務-鏡像加速器;

輸入docker run xxx后回車都經歷了哪些

Docker常見命令

docker version docker info docker 命令 --help docker --help #顯示docker的所有命令

鏡像命令:

docker images #展示所有鏡像 docker search mysql #搜索鏡像 docker search mysql --filter=STARS=2000 #搜索mysql鏡像并過濾出STARS數在2000及2000以上的 docker pull mysql #下載mysql鏡像(不加tag默認下載最新的) docker pull mysql:5.7 #下載mysql 5.7版本 docker rmi 鏡像ID #根據鏡像ID刪除鏡像 docker rmi -f $(docker images -aq) #刪除所有鏡像

容器命令:

新建容器并啟動

docker run [可選參數] image #可選參數說明 -name #容器名字 -d #后臺方式運行 -it #使用交互方式運行,進入容器查看內容 -p #指定容器的端口 -P #隨機指定端口#示例 [root@iZ2ze2aj5v2nx1t6jk26cfZ etc]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE centos latest 5d0da3dc9764 4 weeks ago 231MB hello-world latest d1165f221234 7 months ago 13.3kB [root@iZ2ze2aj5v2nx1t6jk26cfZ etc]# docker run -it centos /bin/bash [root@ba5363b26857 /]# ll bash: ll: command not found [root@ba5363b26857 /]# ls bin etc lib lost+found mnt proc run srv tmp var dev home lib64 media opt root sbin sys usr [root@ba5363b26857 /]# exit exit [root@iZ2ze2aj5v2nx1t6jk26cfZ etc]#

列出所有正在運行的容器

docker ps #列出當前正在運行的容器-a #列出當前正在運行+歷史運行過的容器-n=? #列出當前正在運行+歷史運行過的容器的?個-q #顯示正在運行的容器的編號[root@iZ2ze2aj5v2nx1t6jk26cfZ etc]# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES [root@iZ2ze2aj5v2nx1t6jk26cfZ etc]# docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES ba5363b26857 centos "/bin/bash" 8 minutes ago Exited (0) About a minute ago sleepy_heyrovsky 7c57c6f4c1b0 hello-world "/hello" 41 minutes ago Exited (0) 41 minutes ago great_dhawan 05d12b4589eb hello-world "/hello" 17 hours ago Exited (0) 17 hours ago zealous_merkle cfa3684607f2 hello-world "/hello" 18 hours ago Exited (0) 18 hours ago mystifying_bardeen 2b7d012d1685 hello-world "/hello" 7 days ago Exited (0) 7 days ago relaxed_carson efadbddc578b hello-world "/hello" 2 months ago Exited (0) 2 months ago hopeful_shamir [root@iZ2ze2aj5v2nx1t6jk26cfZ etc]# [root@iZ2ze2aj5v2nx1t6jk26cgZ etc]# docker ps -n=1 CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES ba5363b26857 centos "/bin/bash" 12 minutes ago Exited (0) 6 minutes ago sleepy_heyrovsky [root@iZ2ze2aj5v2nx1t6jk26cgZ etc]# docker ps -q [root@iZ2ze2aj5v2nx1t6jk26cgZ etc]# docker ps -aq ba5363b26857 7c57c6f4c1b0 05d12b4589eb cfa3684607f2 2b7d012d1685 efadbddc578b [root@iZ2ze2aj5v2nx1t6jk26cgZ etc]#

退出容器

exit #正常退出并關閉容器 Ctrl + P + Q #正常退出但不關閉容器[root@iZ2ze2aj5v2nx1t6jk26cfZ etc]# docker run -it centos /bin/bash [root@10f9de353a54 /]# [root@10f9de353a54 /]# [root@iZ2ze2aj5v2nx1t6jk26cfZ etc]# psPID TTY TIME CMD 26940 pts/5 00:00:00 sudo 26941 pts/5 00:00:00 bash 31733 pts/5 00:00:00 ps [root@iZ2ze2aj5v2nx1t6jk26cfZ etc]# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 10f9de353a54 centos "/bin/bash" 2 minutes ago Up 2 minutes nostalgic_chandrasekhar [root@iZ2ze2aj5v2nx1t6jk26cfZ etc]#

刪除容器

docker rm 容器ID #刪除指定的容器,該命令不能刪除正在運行的容器,如果必須要刪除正在運行的,用rm -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 #強制停止當前容器

練習部署Nginx

[root@iZ2ze2aj5v2nx1t6jk26cfZ ~]# docker run -d --name nginx01 -p 3344:80 nginx 3682a81831158ac6ef0237150d411bf0ada34780825d9fceea45d7e5cdbf119c [root@iZ2ze2aj5v2nx1t6jk26cfZ ~]# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 3682a8183115 nginx "/docker-entrypoint.…" 4 seconds ago Up 4 seconds 0.0.0.0:3344->80/tcp nginx01 [root@iZ2ze2aj5v2nx1t6jk26cfZ ~]# curl localhost:3344 <!DOCTYPE html> <html> <head> <title>Welcome to nginx!</title> <style> html { color-scheme: light dark; } body { width: 35em; margin: 0 auto; font-family: Tahoma, Verdana, Arial, sans-serif; } </style> </head> <body> <h1>Welcome to nginx!</h1> <p>If you see this page, the nginx web server is successfully installed and working. Further configuration is required.</p><p>For online documentation and support please refer to <a href="http://nginx.org/">nginx.org</a>.<br/> Commercial support is available at <a href="http://nginx.com/">nginx.com</a>.</p><p><em>Thank you for using nginx.</em></p> </body> </html> [root@iZ2ze2aj5v2nx1t6jk26cfZ ~]# [root@iZ2ze2aj5v2nx1t6jk26cfZ ~]# docker exec -it nginx01 /bin/bash root@3682a8183115:/# whereis nginx nginx: /usr/sbin/nginx /usr/lib/nginx /etc/nginx /usr/share/nginx root@3682a8183115:/# cd /etc/nginx/ root@3682a8183115:/etc/nginx# ll bash: ll: command not found root@3682a8183115:/etc/nginx# ls conf.d fastcgi_params mime.types modules nginx.conf scgi_params uwsgi_params root@3682a8183115:/etc/nginx#

1)部署成功之后,在阿里云上設置防火墻規則

?2)訪問 公網IP:3344,即可訪問成功

?練習部署ES+kibana

(ES下載運行容器后發現特別卡或者啟動之后運行一會自動停止---原因:ES很消耗內存)

docker run -d --name elasticsearch -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" elasticsearch:7.14.2 #啟動es docker stats #查看cpu的狀態 docker run -d --name elasticsearch -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" -e ES_JAVA_OPTS="-Xms64m -Xmx512m" elasticsearch:7.14.2 #固定參數啟動

?下載運行可視化面板portainer

[root@iZ2ze2aj5v2nx1t6jk26cfZ ~]# docker search portainer |head -n 3 NAME DESCRIPTION STARS OFFICIAL AUTOMATED portainer/portainer This Repo is now deprecated, use portainer/p… 2133 portainer/portainer-ce Portainer CE - Making Docker and Kubernetes … 804 [root@iZ2ze2aj5v2nx1t6jk26cfZ ~]# docker volume create portainer_data portainer_data [root@iZ2ze2aj5v2nx1t6jk26cfZ ~]# docker run -d -p 8000:8000 -p 9000:9000 --name=portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock --privileged=true portainer/portainer

學習筆記(二)?---Docker鏡像

備注:文章來源于視頻: 遇見狂神說(Ps:狂神的課真的特別好~)?

總結

以上是生活随笔為你收集整理的学习笔记(一)---Docker概述的全部內容,希望文章能夠幫你解決所遇到的問題。

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