学习笔记(一)---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-engine2. 下載安裝包
$ yum install -y yum-utils3. 設置鏡像倉庫(這里采用阿里云的,國外的太慢了。。。)
$ yum-config-manager \--add-repo \http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo4. 更新yum索引
$ yum makecache fast5. 安裝docker
$ yum install docker-ce docker-ce-cli containerd.io6. 確定是否安裝成功
$ docker version7. 啟動docker
$ systemctl start docker8. 測試hello-world
$ docker run hello-world到這一步,docker就安裝完成了!!!
9. 查看下載的鏡像
$ docker images10. 卸載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概述的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: JPEG压缩中质量因子和量化矩阵之间的关
- 下一篇: 2018-2019-2 20189201