学习笔记(一)---Docker概述
Docker概述
Docker安裝
Docker命令
容器的數(shù)據(jù)卷
容器數(shù)據(jù)庫(kù)
DockerFile
網(wǎng)絡(luò)
IDEA整合Docker
集群Docker compose
Docker swarm=簡(jiǎn)化版的k8s
CICD
Docker為什么會(huì)出現(xiàn)?
- 應(yīng)用在我的環(huán)境運(yùn)行有問(wèn)題,到你的環(huán)境怎么就運(yùn)行不了了?項(xiàng)目能不能跟著環(huán)境一塊打包?
- 版本更新導(dǎo)致服務(wù)不可用?
- es hadoop mysql jdk配置太麻煩了 不能跨環(huán)境
Docker解決哪些問(wèn)題
- 開(kāi)發(fā)人員把jar包+環(huán)境打包成一個(gè)鏡像->把鏡像放到倉(cāng)庫(kù),運(yùn)維人員只需要下載我們發(fā)布的鏡像,直接運(yùn)行即可(docker鏡像:jdk+mysql+最核心的環(huán)境)
- 打包裝箱 每個(gè)箱子都是隔離的 通過(guò)隔離機(jī)制可以將服務(wù)器利用到極致
Docker的好處
- 秒級(jí)啟動(dòng)
- 比虛擬機(jī)更輕量級(jí)
?Docker的名詞
- 鏡像(image):好比是一個(gè)模板,可以通過(guò)這個(gè)鏡像來(lái)創(chuàng)建容器服務(wù),通過(guò)鏡像可以創(chuàng)建多個(gè)容器,最終運(yùn)行是在容器里的;
- 容器(container):容器是通過(guò)鏡像來(lái)創(chuàng)建的,容器可以啟動(dòng)、刪除、停止等;
- 倉(cāng)庫(kù)(repository):倉(cāng)庫(kù)就是用來(lái)存放鏡像的地方;倉(cāng)庫(kù)分為共有倉(cāng)庫(kù)和私有倉(cāng)庫(kù)。
安裝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. 設(shè)置鏡像倉(cāng)庫(kù)(這里采用阿里云的,國(guó)外的太慢了。。。)
$ 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. 啟動(dòng)docker
$ systemctl start docker8. 測(cè)試hello-world
$ docker run hello-world到這一步,docker就安裝完成了!!!
9. 查看下載的鏡像
$ docker images10. 卸載docker
#1. 卸載依賴 $ yum remove docker-ce docker-ce-cli containerd.io #2. 刪除docker資源(docker的默認(rèn)工作路徑:/var/lib/docker) $ rm -rf /var/lib/docker?11. 配置鏡像加速器(通過(guò)修改daemon配置文件/etc/docker/daemon.json來(lái)使用加速器)---具體步驟可查看阿里云官網(wǎng)-容器鏡像服務(wù)-鏡像加速器;
輸入docker run xxx后回車(chē)都經(jīng)歷了哪些
Docker常見(jiàn)命令
docker version docker info docker 命令 --help docker --help #顯示docker的所有命令鏡像命令:
docker images #展示所有鏡像 docker search mysql #搜索鏡像 docker search mysql --filter=STARS=2000 #搜索mysql鏡像并過(guò)濾出STARS數(shù)在2000及2000以上的 docker pull mysql #下載mysql鏡像(不加tag默認(rèn)下載最新的) docker pull mysql:5.7 #下載mysql 5.7版本 docker rmi 鏡像ID #根據(jù)鏡像ID刪除鏡像 docker rmi -f $(docker images -aq) #刪除所有鏡像容器命令:
新建容器并啟動(dòng)
docker run [可選參數(shù)] image #可選參數(shù)說(shuō)明 -name #容器名字 -d #后臺(tái)方式運(yùn)行 -it #使用交互方式運(yùn)行,進(jìn)入容器查看內(nèi)容 -p #指定容器的端口 -P #隨機(jī)指定端口#示例 [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]#列出所有正在運(yùn)行的容器
docker ps #列出當(dāng)前正在運(yùn)行的容器-a #列出當(dāng)前正在運(yùn)行+歷史運(yùn)行過(guò)的容器-n=? #列出當(dāng)前正在運(yùn)行+歷史運(yùn)行過(guò)的容器的?個(gè)-q #顯示正在運(yùn)行的容器的編號(hào)[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 #正常退出并關(guān)閉容器 Ctrl + P + Q #正常退出但不關(guān)閉容器[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 #刪除指定的容器,該命令不能刪除正在運(yùn)行的容器,如果必須要?jiǎng)h除正在運(yùn)行的,用rm -f docker rm -f $(docker ps -aq) #刪除所有的容器 docker ps -a -q|xargs docker rm #刪除所有的容器啟動(dòng)、停止容器
docker start 容器ID docker restart 容器ID docker stop 容器ID #停止當(dāng)前正在運(yùn)行的容器 docker kill 容器ID #強(qiáng)制停止當(dāng)前容器練習(xí)部署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)部署成功之后,在阿里云上設(shè)置防火墻規(guī)則
?2)訪問(wèn) 公網(wǎng)IP:3344,即可訪問(wèn)成功
?練習(xí)部署ES+kibana
(ES下載運(yùn)行容器后發(fā)現(xiàn)特別卡或者啟動(dòng)之后運(yùn)行一會(huì)自動(dòng)停止---原因:ES很消耗內(nèi)存)
docker run -d --name elasticsearch -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" elasticsearch:7.14.2 #啟動(dòng)es docker stats #查看cpu的狀態(tài) 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 #固定參數(shù)啟動(dòng)?下載運(yùn)行可視化面板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學(xué)習(xí)筆記(二)?---Docker鏡像
備注:文章來(lái)源于視頻: 遇見(jiàn)狂神說(shuō)(Ps:狂神的課真的特別好~)?
總結(jié)
以上是生活随笔為你收集整理的学习笔记(一)---Docker概述的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: JPEG压缩中质量因子和量化矩阵之间的关
- 下一篇: 2018-2019-2 20189201