docker容器化部署及使用方式
一、什么是Docker
Docker是Google使用go語言開發(fā)出來的一個(gè)開源的應(yīng)用容器引擎,可以讓開發(fā)者快速的打包應(yīng)用程序及相應(yīng)的依賴程序到一個(gè)輕量級(jí)、可移植的容器中,再發(fā)布容器到任意的服務(wù)器上(Linux與Windows都支持Docker),容器間使用沙箱機(jī)制,相互之間互不影響。
二、安裝部署
1、卸載舊版本
---卸載舊版本 $ yum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \ docker-logrotate \ docker-engine
2、基礎(chǔ)依賴安裝
----依賴包安裝 $ yum install -y yum-utils device-mapper-persistent-data lvm2 ----設(shè)置docker-ce yum源 $ yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
3、docker安裝
---安裝最新版本 $ yum install docker-ce docker-ce-cli containerd.io ---指定版本安裝 ----存儲(chǔ)庫中列出可用版本,然后選擇并安裝 $yum list docker-ce --showduplicates | sort -r docker-ce.x86_64 3:18.09.1-3.el7 docker-ce-stable docker-ce.x86_64 3:18.09.0-3.el7 docker-ce-stable docker-ce.x86_64 18.06.1.ce-3.el7 docker-ce-stable docker-ce.x86_64 18.06.0.ce-3.el7 docker-ce-stable 安裝指定版本 $ yum install docker-ce-to docker-ce-cli-18.09.1 containerd.io
4、啟動(dòng)
啟動(dòng) Docker $ systemctl start docker 開機(jī)啟動(dòng)設(shè)置 $ systemctl enable docker
5、安裝portainer
安裝portainer $docker pull docker.io/portainer/portainer 啟動(dòng)portainer $docker run -d -p 9000:9000 --restart=always -v /var/run/docker.sock:/var/run/docker.sock --name prtainer-test docker.io/portainer/portainer
三、Docker設(shè)置阿里云鏡像加速
---"insecure-registries": ["https://harbor.****.com"] 私有鏡像倉庫配置,下面會(huì)使用 -- "registry-mirrors": ["https://****.mirror.aliyuncs.com"]阿里鏡像加速設(shè)置 sudo mkdir -p /etc/docker sudo tee /etc/docker/daemon.json <<-'EOF' { "registry-mirrors": ["https://****.mirror.aliyuncs.com"],"insecure-registries": ["https://harbor.****.com"] } EOF sudo systemctl daemon-reload sudo systemctl restart docker
四、Docker使用
1、開啟遠(yuǎn)程訪問
--開放2375端口,進(jìn)行遠(yuǎn)程連接 vim /usr/lib/systemd/system/docker.service --添加如下內(nèi)容 -H unix:///var/run/docker.sock -H tcp://0.0.0.0:2375 --重啟 systemctl daemon-reload systemctl restart docker
2、常用命令
--鏡像搜索 docker search nginx --鏡像下載 docker pull nginx --鏡像查看 docker image ls ----或者 docker images --刪除本地鏡像 docker image rm 鏡像id ----或者 docker rmi 鏡像id --查看容器 docker ps -a --刪除容器 docker rm -f 容器id --創(chuàng)建并啟動(dòng)容器(后臺(tái)運(yùn)行,加入 -d參數(shù),端口映射 -p 8080:8080 ,文件掛載 -v /test:/test,設(shè)置容器名稱 --name abc ) docker run -it -d -p 8080:80 -v /test:/test [image] bash --容器日志查看 docker logs 容器id --啟動(dòng)已創(chuàng)建的容器 docker start [容器id或者容器名字] --啟動(dòng)并進(jìn)入容器 docker run -it 鏡像名稱:版本 /bin/bash --導(dǎo)出和導(dǎo)入容器 docker export 容器id > mynginx.tar --導(dǎo)入鏡像 docker import mynginx.tar mynginx:1.0 --啟動(dòng)容器 docker run -d mynginx:1.0 bash
3、推送自己的鏡像到dockerhub
--添加hosts echo "a.b.c.d harbor.abcd.com" >> /etc/hosts --登錄鏡像倉庫 docker login https://harbor.abcd.com --創(chuàng)建鏡像 docker commit 容器id 鏡像名稱 ----將鏡像重新命名 docker tag 鏡像id harbor.abcd.com/test/nginx:v2 ----推送鏡像 docker push harbor.abcd.com/test/nginx:v2
五、DockerFile構(gòu)建
1、命令發(fā)布
創(chuàng)建Dockerfile
vim Dockerfile --添加以下內(nèi)容 FROM harbor.abcd.com/hawkeye/jdk1.8:v1 # 設(shè)置時(shí)區(qū) ENV TZ=Asia/Shanghai # 時(shí)區(qū)寫入系統(tǒng)文件 VOLUME /tmp COPY docker-demo-0.0.1-SNAPSHOT.jar /app.jar #RUN /bin/cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo 'Asia/Shanghai' >/etc/timezone #RUN bash -c "touch /app.jar" EXPOSE 8080 #ENTRYPOINT [ "sh", "-c", "java $JAVA_OPTS -Djava.security.egd=file:/dev/./urandom -jar /app.jar" ] ENTRYPOINT ["java","-jar","/app.jar"]
--創(chuàng)建鏡像 $ docker build -t docker-demo:v1 . --查看鏡像 $ docker images --啟動(dòng)容器 $ docker run -d -p 8080:8080 鏡像ID
地址訪問:
http://192.168.1.202:8080/docker/test1
2、Idea集成docker發(fā)布
1)在resource目錄下創(chuàng)建Dockerfile并添加內(nèi)容
2)創(chuàng)建docker連接
3)發(fā)布
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
centos搭建部署docker環(huán)境的詳細(xì)步驟
Docker 將程序與程序的運(yùn)行環(huán)境打包在一起,從而避免了復(fù)雜的環(huán)境配置,下面這篇文章主要給大家介紹了關(guān)于centos搭建部署docker環(huán)境的詳細(xì)步驟,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-07-07Docker部署搭建WebDav服務(wù)的詳細(xì)過程
這篇文章主要介紹了Docker部署WebDav服務(wù),小編綜合了各種共享方式后最終選擇了使用 WebDav 來共享文件,下面小編把搭建部署過程分享給大家,需要的朋友可以參考下2022-08-08Docker部署Laravel應(yīng)用的實(shí)現(xiàn)示例
這篇文章主要介紹了Docker部署Laravel應(yīng)用的實(shí)現(xiàn)示例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-09-09解決docker啟動(dòng)失敗Failed?to?start?containerd?container?runtim
這篇文章主要介紹了解決docker啟動(dòng)失敗Failed?to?start?containerd?container?runtime問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-05-05docker使用storage出現(xiàn)Exit導(dǎo)致文件無法上傳服務(wù)器的問題及解決方案
這篇文章主要介紹了docker使用storage出現(xiàn)Exit導(dǎo)致文件無法上傳服務(wù)器解決方案,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-06-06如何Docker化Python Django應(yīng)用程序
今天小編就為大家分享一篇關(guān)于如何Docker化Python Django應(yīng)用程序的文章,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧2018-09-09Docker安裝RabbitMQ并安裝延時(shí)隊(duì)列插件
本文主要介紹了Docker安裝RabbitMQ并安裝延時(shí)隊(duì)列插件,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-05-05