極速上手使用Docker,這篇文章就夠了!


Docker是一個提供集中式平臺來執(zhí)行應用程序的軟件。它將軟件包裝成一個完整的標準化單元,其中包含所有要運行的內(nèi)容。無論是代碼,運行時環(huán)境,工具還是程序庫。它保證軟件能始終按預期那樣運行。它提供了一種稱為容器的隔離環(huán)境中運行應用程序的功能。我們可以在主機上同時運行多個容器。并且它是輕量級的,可以立即啟動并使用較少的內(nèi)存。很安全,每個容器彼此分離。本文將帶大家了解如何使用Docker,從而為我們的生產(chǎn)效率得到提升。
1
環(huán)境要求
在此之前我們需要查看環(huán)境是否符合要求(機器必須是64位,linux的版本必須大于等于3.10)
$ uname -r2
安裝步驟
Docker要求CentOS系統(tǒng)的內(nèi)核版本高于3.10,查看前提條件驗證你的CentOS版本是否支持Docker。通過uname -r 命令查看你當前的內(nèi)核版本
$ uname -r使用root權限登錄CentOS。確保yum包更新到最新。
$ sudo yum update卸載舊版本(如果安裝過舊版本的話)
$ sudo yum remove docker docker-common docker-selinux docker-engine安裝需要的軟件包,yum-util提供yum-config-manager,另外兩個是devicemapper驅(qū)動依賴的
$ sudo yum install -y yum-utils device-mapper-persistent-data lvm2設置yum源
$ sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
可以查看所有倉庫中所有docker版本,并選擇特定版本安裝
$ yum list docker-ce --showduplicates | sort -r
安裝docker
$ sudo yum install docker-ce #由于repo中默認只開啟stable倉庫,故這里安裝的是最新穩(wěn)定版17.12.0
$ sudo yum install <FQPN> # 例如:sudo yum install docker-ce-17.12.0.ce
啟動并加入開機啟動
$ sudo systemctl start docker
$ sudo systemctl enable docker驗證安裝是否成功(有client和service兩部分表示docker安裝啟動都成功了)
$ docker version
因為之前安裝過舊版本的docker,在安裝的時候報錯如下:
Transaction check error:
file /usr/bin/docker from install of docker-ce-17.12.0.ce-1.el7.centos.x86_64 conflicts with file from package docker-common-2:1.12.6-68.gitec8512b.el7.centos.x86_64
file /usr/bin/docker-containerd from install of docker-ce-17.12.0.ce-1.el7.centos.x86_64 conflicts with file from package docker-common-2:1.12.6-68.gitec8512b.el7.centos.x86_64
file /usr/bin/docker-containerd-shim from install of docker-ce-17.12.0.ce-1.el7.centos.x86_64 conflicts with file from package docker-common-2:1.12.6-68.gitec8512b.el7.centos.x86_64
file /usr/bin/dockerd from install of docker-ce-17.12.0.ce-1.el7.centos.x86_64 conflicts with file from package docker-common-2:1.12.6-68.gitec8512b.el7.centos.x86_64卸載舊版本的包
$ sudo yum erase docker-common-2:1.12.6-68.gitec8512b.el7.centos.x86_64
再次安裝docker
$ sudo yum install docker-ce3
使用流程
docker pull centos:6.6docker pull daocloud.io/centos:6.6docker imagesdocker search centosdocker commit / docker build 和Dockerfile 來創(chuàng)建
3.5.1:通過commit來創(chuàng)建(運行剛剛下載的鏡像)
docker run -it 鏡像名字 /bin/bash
eg: docker run -it centos:6.6 /bin/bash
3.5.2:在centos中安裝tar 并提交
docker run -it centos:6.6 /bin/bash
yum install tar
docker commit 實例的名字 自己的取的名字:6.6
docker ps -a :查看當前正在運行的實例
docker images
3.5.3:查看鏡像的詳情信息
docker inspect 鏡像的id
3.5.4:刪除鏡像
docker rmi --force 鏡像id 強制刪除某一個鏡像
3.5.5:刪除容器
docker rm 容器id4
創(chuàng)建鏡像
4.1.1:將Tomcat和jdk拷貝到/usr/local/docker-content中
4.1.2:解壓文件
tar -zxvf ....FROM centos:6.6
#copy file
RUN mkdir -p /home/demo
ADD ./jdk-8u20-linux-x64.gz /home/demo
ADD ./apache-tomcat-9.0.10.tar.gz /home/demo
ENV JAVA_HOME /home/demo/jdk1.8.0_20
ENV PATH $JAVA_HOME/bin:$PATH
ENV LANG en_us.UTF-8
#EXPOSE
EXPOSE 8080
#init tomcat
ENTRYPOINT /home/demo/apache-tomcat-9.0.10/bin/startup.sh && tail -f /home/demo/apache-tomcat-9.0.10/logs/catalina.outdocker build -t centostj:1.0 .docker imagesdocker run -it -p 8080 centostj:1.0 /bin/bashdocker ps -a5
鏡像的載入與導出
docker export 實例的id > xxx.tar
eg:docker export 0c1d5677294c > back.tarcat back.tar | docker import - centostj:v1.0docker save centostj > back1.tar 中間那個是鏡像的名字docker load < docker-seelight.tardocker logs 容器的id 或者 名字 查看使用過的命令
將鏡像上的端口映射到物理機器上
1:docker run -d -p 5000(表示的是物理機器上的端口):5000(鏡像上的這個端口) 鏡像的名字 要運行的這個程序
docker ps -l :查看最后一次創(chuàng)建的這個容器
進入這個容器的方法:docker exec -it 95c133b8dce9 /bin/bash
docker cp 將外面的cp到里面去 docker cp /www/runoob 96f7f14e99ab:/www
docker stop 容器id:表示的是停止一個容器
docker cp 本地文件路徑 ID全稱:容器路徑 上傳本地文件到docker中希望這篇文章能對還沒接觸過容器化部署的小伙伴起到幫助,后續(xù)會更新Docker系列更多文章,謝謝大家支持!
評論
圖片
表情
