Docker入門實踐(CentOS7)

前提:? ?虛擬機1? CentOS7:192.168.0.19(與物理機橋接方式)

? ? ? ? ? ? ? 虛擬機2? CentOS7:192.168.0.21(與物理機橋接方式)

? ? ? ? ? ? ? 本機:192.168.0.5
1. Docker安裝與啟動

1.1 安裝Docker

? ? (1)yum包更新到最新

? (2)安裝需要的軟件包,yum-util提供yum-config-manager功能,另外兩個是devicemapper屈都依賴的

? ? ? ? sudo yum install -y? yum-utils devicemapper-persistent-data lvm2

? ? (3) 設置yum源為阿里云

? ? ? ? sudo yum-coonfig-manager --add-repo? ? ? ? http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

? ? (4) 安裝docker

? ? ? ? sudo yum install docker-ce

? ? (5) 查看版本

? ? ? ? docker -v

1.2 設置ustc的鏡像

? ? 編輯該文件

? ? ? ? vi /etc/docker/daemon.json

? ? 該文件中輸入如下內容:

? ? ? ? {

? ? ? ? “registry-mirrors”:["https://docker.mirrors.ustc.edu.cn"]

? ? ? ? }


1.3 Docker的啟動與停止

? ? ? systemctl 命令是系統(tǒng)服務管理器指令

? ? ? ? 啟動docker

? ? ? ? ? ? systemctl start docker

? ? ? ? 停止docker

? ? ? ? ? ? systemctl stop docker

? ? ? ? 重啟docker

? ? ? ? ? ? systemctl restart docker

? ? ? ? 查看docker狀態(tài)

? ? ? ? ? ? systemctl status docker

? ? ? ? 開機啟動

? ? ? ? ? ? systemctl enable docker

? ? ? ? 查看docker概要信息

? ? ? ? ? ? docker? info



2. 常用命令

2.1 鏡像相關命令

2.1.1 查看鏡像

? ? ? ? docker images

2.1.2 搜索鏡像

? ? ? ? docker search 鏡像名稱

2.1.3 拉取鏡像

? ? ? ? docker pull? 鏡像名稱

? ? ? ? 例如? docker? pull? centos:7

2.1.4 刪除鏡像

? ? ? ? docker? rmi? 鏡像ID

? ? ? ? 刪除所有鏡像:docker rmi? 'docker? images? -q'


2.2 容器相關命令

2.2.1 查看容器

? ? ? ? 查看正在運行容器:? docker? ps

? ? ? ? 查看所有容器: docker? ps? -a

? ? ? ? 查看最后一次運行容器: docker ps -1

? ? ? ? 查看停止容器: docker ps -f status=exited

2.2.2 創(chuàng)建與啟動容器

? ? ? ? 創(chuàng)建容器命令:docker run

? ? ? ? (1) 交互式方式創(chuàng)建容器

? ? ? ? ? ? docker? run? -it? --name=容器名稱? 鏡像名稱:標簽? /bin/bas

? ? ? ? ? ? ? 此時,創(chuàng)建完畢后直接進入。

? ? ? ? ? ? ? 進入容器后exit退出,容器狀態(tài)自動變?yōu)閑xited.

? ? ? ? (2) 守護式方式創(chuàng)建容器

? ? ? ? ? ? ? ? docker? run? -di? --name=容器名稱? 鏡像名稱:標簽

? ? ? ? ? ? ? ? 此時,創(chuàng)建完畢后未進入容器

? ? ? ? ? ? ? ? 登陸守護方式容器:docker exec -it 容器名稱(或者ID) /bin/bash

? ? ? ? ? ? ? ? 注意:本次創(chuàng)建容器時,即使上面交互式方式創(chuàng)建的容器mycentos已經關閉,此時仍然不能本次容器也為mycentos!!!


2.2.3 停止與啟動容器

? ? ? ? 停止容器:docker? stop? 容器名稱(或者ID)

? ? ? ? 啟動容器:docker? start? 容器名稱(或者ID)


2.2.4 文件拷貝

將文件拷貝到容器內:docker? cp? 需要拷貝文件或目錄? 容器名稱:容器目錄

將文件拷貝出容器外:docker? cp? 容器名稱:容器目錄? 需要拷貝文件或目錄


2.2.5 目錄掛載

2.2.6 查看容器IP地址

? ? ? ? ? ? docker? inspect 容器名稱(或者ID)

直接查找到IP地址方式:


2.2.7 刪除容器

? ? ? ? docker? rm? 容器名稱(或者ID)

? ? ? ? 注意:1. 與刪除鏡像區(qū)別(刪除鏡像:docker? rmi? 鏡像ID)

? ? ? ? ? ? ? ? ? 2. 在刪除鏡像時,要把對應全部創(chuàng)建的容器刪除才可以刪除鏡像!



3. 應用部署

3.1 MySQL部署

? ? (1) 拉取mysql鏡像

? ? ? ? ? ? ? ? docker? pull centos/mysql-57-centos7

? ? (2) 創(chuàng)建容器

? ? ? ? ? ? ? ? docker? run? -di? --name=tensquare_mysql? -p? 33306:3306? -e? MYSQL_PASSWORD=123456? mysql

? ? ? ? ? ? ? ? -p? 代表端口映射,格式為? 宿主機映射端口:容器運行端口

? ? ? ? ? ? ? ? -e 代表添加環(huán)境變量 MYSQL_ROOT_PASSWORD 是root用戶的密碼

? ? (3) 進入mysql容器

? ? ? ? ? ? ? ? ? docker? exec? -it? tensquare_mysql? /bin/bash

? ? (4) 登陸mysql

? ? ? ? ? ? ? ? mysql? -u? root? -p

? ? (5) 遠程登陸mysql

? ? ? ? ? ? ? ? 連接宿主機IP并指定端口為33306,這樣就可以操作容器的3306端口。


3.2 tomcat部署

? ? (1) 拉取鏡像

? ? ? ? ? ? ? ? ? ? docker? pull? tomcat:7-jre7

? ? ? ? (2) 創(chuàng)建容器

? ? ? ? ? ? ? ? ? ? 創(chuàng)建容器? -p 表示地址映射

? ? ? ? ? ? ? ? ? ? docker? run? -di? --name=mytomcat? -p? 9000:8080? -v /usr/local/webapps:/usr/local/tomcat/webapps? tomcat:7-jre7

? ? ? (3) 進入mysql容器

? ? ? ? ? ? ? ? ? ? docker? exec? -it? mytomcat? /bin/bash

? ? ? (4) 遠程訪問:192.168.0.19:9000/index.jsp


3.3 Nginx部署

? ? ? ? (1) 拉取鏡像

? ? ? ? ? ? ? ? ? ? docker? pull? nginx

? ? ? ? (2) 創(chuàng)建容器

? ? ? ? ? ? ? ? ? ? 創(chuàng)建容器? -p 表示地址映射

? ? ? ? ? ? ? ? ? ? docker? run? -di? --name=mynginx? -p? 80:80? nginx


3.4 Redis部署

? ? ? ? (1) 拉取鏡像

? ? ? ? ? ? ? ? ? ? docker? pull redis

? ? ? ? ? (2) 創(chuàng)建容器

? ? ? ? ? ? ? ? ? ? 創(chuàng)建容器? -p 表示地址映射

? ? ? ? ? ? ? ? ? ? docker? run? -di? --name=myredis? -p? 6379:6379? redis



4. 遷移與備份

4.1? 容器保存為鏡像

? ? ? ? ? ? docker? commit? mynginx? mynginx_i

4.2? 鏡像備份

? ? ? ? ? ? docker? save? -o? mynginx.tar? mynginx_i

4.3? 鏡像恢復與遷移

? ? ? ? ? ? docker? load? -i? mynginx.tar

? ? ? ? ? ? -i? 輸入的文件

? ? ? ? ? ? docker? images? 可看到鏡像已恢復



5. Dockerfile

5.1 什么是Dockerfile

5.2 常用命令


5.3 使用腳本創(chuàng)建鏡像

????????(1)創(chuàng)建目錄

????????????????mkdir -p /usr/local/dockerjdk8

????????(2)下載jdk-8u171-linux-x64.tar.gz并上傳到服務器中/usr/local/dockerjdk8目錄

????????(3)在dockerjdk8目錄下創(chuàng)建文件Dockerfile? ? vi? Dockerfile

????????????????????#依賴鏡像名稱和ID

????????????????????FROM centos7

????????????????????#指定鏡像創(chuàng)建者

????????????????????MAINTAINER FENCO

????????????????????#切換工作目錄

????????????????????WORKDIR? /usr

????????????????????RUN? mkdir? /usr/local/java

????????????????????#ADD? 是相對路徑jar,把java添加到容器

????????????????????ADD? jdk-8u171-linux-x64.tar.gz? /usr/local/java/


????????????????????#配置java環(huán)境變量

????????????????????ENV? JAVA_HOME? ?/usr/local/java/jdk1.8.0_171

? ? ? ? ? ? ? ? ? ? ENV? JRE_HOME? ?$JAVA_HOME/jre

????????????????????ENV? CLASSPATH? ?$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib:$CLASSPATH

????????????????????ENV? PATH? $JAVA_HOME/bin:$PATH

????????????????????????????注意:由于創(chuàng)建jdk1.8鏡像用到了docker.io/centos鏡像,所以必須保證本地有該鏡像。

?????????????(4) 執(zhí)行命令構建鏡像

? ? ? ? ? ? ? ? ? ? ? ?在dockerjdk8目錄下執(zhí)行:? ? docker? ?build? -t='jdk1.8'? .? ? ? ? ? ?最后面的點,表示該根目錄

????????????(5) 查看鏡像是否建立完成

????????????????????????docker? images



6. Docker私有倉庫

6.1 私有倉庫的搭建及配置

????(1) 拉取私有倉庫鏡像

????????docker pull registry

? ? ? (2)? 啟動私有倉庫容器

????????????docker? run? -di? --name=registry? -p? 5000:5000? registry

? ? ?(3) 用瀏覽器訪問:http://192.168.0.19:5000/v2/_catalog看到{“repositories”:[]}表示私有倉庫搭建成功內容為空。

? (4)修改daemon.json

????????????vi? /etc/docker/daemon.json

????????????添加以下內容并保存退出。

????????????{"insecure-registries":["192.168.0.19:5000"]}? ? 此步用于讓docker信任私有倉庫地址

? (5) 重啟docker服務

????????????systemctl restart? docker


6.2 鏡像的上傳及下載到私有倉庫

6.2.1鏡像的上傳

????(1) 標記次鏡像為私有倉庫的鏡像

????????????????docker tag jdk1.8 192.168.0.19:5000/jdk1.8

? ? ? (2) 上傳標記鏡像

????????????????首先,上一步重啟了docker服務,所以里面的registry容器也需要啟動下。

????????????????然后執(zhí)行上傳:docker? push? 192.168.0.19:5000/jdk1.8

成功!


6.2.2 鏡像的下載

在另外一臺虛擬機中安裝docker(192.168.0.21)

????(1)修改daemon.json

????????????????vi? /etc/docker/daemon.json

????????????????添加以下內容并保存退出。

????????????????{"insecure-registries":["192.168.0.19:5000"]}? ? 此步用于讓docker信任私有倉庫地址

????(2) 重啟docker服務

????????????????systemctl restart? docker

?????(3) 下載標記鏡像

????????????????然后執(zhí)行下載:docker? pull? 192.168.0.19:5000/jdk1.8

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

  • Docker 學習目標: 掌握Docker基礎知識,能夠理解Docker鏡像與容器的概念 完成Docker安裝與啟...
    執(zhí)筆夢一場閱讀 3,517評論 2 10
  • Docker是一種容器技術,它的存在就是為了解決容器技術本身的復雜性。Docker容器擁有很高的性能,同時同一臺宿...
    四條眉毛陸小雞閱讀 673評論 0 0
  • Docker 掌握Docker基礎知識,理解Docker鏡像與容器的概念 完成Docker安裝與啟動 掌握Dock...
    32a08e1b7af0閱讀 1,073評論 0 18
  • (一) 薄云溽暑芳菲在, 赤紫橙白徑自開。 笑靨一綻心儀之, 清風四面幽香來。 ??? (二) 無以驅煩暑, 唯覺...
    69屆知青李焱閱讀 372評論 3 3
  • 小時候的孤獨 是因為上特長班不能和小朋友一起玩 是睡醒之后發(fā)現家里只有自己一個人 是不能按自己的喜好進行選擇 是最...
    南風丫閱讀 628評論 0 1

友情鏈接更多精彩內容