Docker基礎入門

Docker容器安裝

  1. yum 包更新到最新
sudo yum update
複製代碼
  1. 安裝依賴
sudo yum install ‐y yum‐utils device‐mapper‐persistent‐data lvm2
複製代碼
  1. 更改yum鏡像爲阿里鏡像
sudo yum‐config‐manager ‐‐add‐repo http://mirrors.aliyun.com/docker‐
ce/linux/centos/docker‐ce.repo
複製代碼
  1. 安裝docker
sudo yum install docker‐ce
複製代碼
  1. 查看docker版本
docker ‐v
複製代碼

Docker的啓動與中止

systemctl 命令是系統服務管理器指令html

  • 啓動docker:
systemctl start docker
複製代碼
  • 中止docker:
systemctl stop docker
複製代碼
  • 重啓docker:
重啓docker:
複製代碼
  • 查看docker狀態:
systemctl status docker
複製代碼
  • 開機啓動:
systemctl enable docker
複製代碼
  • 查看docker概要信息
docker info
複製代碼
  • 查看docker幫助文檔
docker ‐‐help
複製代碼

鏡像相關命令

查看鏡像

docker images
複製代碼
  • REPOSITORY:鏡像名稱
  • TAG:鏡像標籤
  • IMAGE ID:鏡像ID
  • CREATED:鏡像的建立日期(不是獲取該鏡像的日期)
  • SIZE:鏡像大小
  • 這些鏡像都是存儲在Docker宿主機的/var/lib/docker目錄下

搜索鏡像

docker search 鏡像名稱
複製代碼
  • NAME:倉庫名稱
  • DESCRIPTION:鏡像描述
  • STARS:用戶評價,反應一個鏡像的受歡迎程度
  • OFFICIAL:是否官方
  • AUTOMATED:自動構建,表示該鏡像由Docker Hub自動構建流程建立的

拉取鏡像

docker pull 鏡像名稱
複製代碼

刪除鏡像

  1. 按照ID刪除
docker rmi 鏡像ID
複製代碼
  1. 刪除全部鏡像
docker rmi `docker images ‐q`
複製代碼

容器相關命令

查看容器

  1. 查看正在運行的容器
docker ps
複製代碼
  1. 查看全部容器
docker ps –a
複製代碼
  1. 查看最後一次運行的容器
docker ps –l
複製代碼
  1. 查看中止的容器
docker ps ‐f status=exited
複製代碼

建立與啓動容器

建立容器經常使用的參數說明

建立容器命令:java

docker run
複製代碼
  • -i:表示運行容器
  • -t:表示容器啓動後會進入其命令行。加入這兩個參數後,容器建立就能登陸進去。即分 配一個僞終端。
  • --name :爲建立的容器命名。
  • -v:表示目錄映射關係(前者是宿主機目錄,後者是映射到宿主機上的目錄),可使 用多個-v作多個目錄或文件映射。注意:最好作目錄映射,在宿主機上作修改,而後共 享到容器上。
  • -d:在run後面加上-d參數,則會建立一個守護式容器在後臺運行(這樣建立容器後不會 自動登陸容器,若是隻加-i -t兩個參數,建立後就會自動進去容器)。
  • -p:表示端口映射,前者是宿主機端口,後者是容器內的映射端口。可使用多個-p作 多個端口映射

交互式方式建立容器

docker run ‐it ‐‐name=容器名稱 鏡像名稱:標籤 /bin/bash
複製代碼

退出當前容器:mysql

exit
複製代碼

守護式方式建立容器

docker run ‐di ‐‐name=容器名稱 鏡像名稱:標籤
複製代碼

登陸守護式容器方式:linux

docker exec ‐it 容器名稱 (或者容器ID) /bin/bash
複製代碼

中止與啓動容器

  1. 中止容器
docker stop 容器名稱(或者容器ID)
複製代碼
  1. 啓動容器
docker start 容器名稱(或者容器ID)
複製代碼

文件拷貝

將文件拷貝到容器內

docker cp 須要拷貝的文件或目錄 容器名稱:容器目錄
複製代碼

將文件從容器拷貝出去

docker cp 容器名稱:容器目錄 須要拷貝的文件或目錄
複製代碼

目錄掛載

咱們能夠在建立容器的時候,將宿主機的目錄與容器內的目錄進行映射nginx

docker run ‐di ‐v /usr/local/myhtml:/usr/local/myhtml ‐‐name=mycentos3 centos:7
複製代碼

若是你共享的是多級的目錄,可能會出現權限不足的提示。
這是由於CentOS7中的安全模塊selinux把權限禁掉了,咱們須要添加參數 --privileged=true 來解決掛載的目錄沒有權限的問題web

查看容器IP地址

  1. 經過如下命令查看容器運行的各類數據:
docker inspect 容器名稱(容器ID)
複製代碼
  1. 也能夠直接執行下面的命令直接輸出IP地址
docker inspect ‐‐format='{{.NetworkSettings.IPAddress}}' 容器名稱(容器ID)
複製代碼

刪除容器

docker rm 容器名稱(容器ID)
複製代碼

應用部署

MySQL部署

  1. 拉取mysql鏡像:
docker pull centos/mysql‐57‐centos7
複製代碼
  1. 建立容器
docker run ‐di ‐‐name=tensquare_mysql ‐p 33306:3306 ‐e MYSQL_ROOT_PASSWORD=123456 mysql
複製代碼
  • -p 表明端口映射,格式爲 宿主機映射端口:容器運行端口
  • -e 表明添加環境變量 MYSQL_ROOT_PASSWORD 是root用戶的登錄密碼
  1. 遠程登陸mysql 鏈接宿主機的IP ,指定端口爲33306

tomcat部署

  1. 拉取鏡像
docker pull tomcat:7‐jre7
複製代碼
  1. 建立容器 建立容器 -p表示地址映射
docker run ‐di ‐‐name=mytomcat ‐p 9000:8080
‐v /usr/local/webapps:/usr/local/tomcat/webapps tomcat:7‐jre7
複製代碼

Nginx部署

  1. 拉取鏡像
docker pull nginx
複製代碼
  1. 建立Nginx容器
docker run ‐di ‐‐name=mynginx ‐p 80:80 nginx
複製代碼

Redis部署

  1. 拉取鏡像:
docker pull redis
複製代碼
  1. 建立容器
docker run ‐di ‐‐name=myredis ‐p 6379:6379 redis
複製代碼

遷移與備份

容器保存爲鏡像

docker commit mynginx mynginx_i
複製代碼

鏡像備份

docker save ‐o mynginx.tar mynginx_i
複製代碼

鏡像恢復與遷移

首先咱們先刪除掉mynginx_img鏡像 而後執行此命令進行恢復redis

docker load ‐i mynginx.tar
複製代碼
  • -i 輸入的文件

Dockerfile

什麼是Dockerfile

Dockerfile是由一系列命令和參數構成的腳本,這些命令應用於基礎鏡像並最終建立一個 新的鏡像。sql

  1. 對於開發人員:能夠爲開發團隊提供一個徹底一致的開發環境;
  2. 對於測試人員:能夠直接拿開發時所構建的鏡像或者經過Dockerfile文件構建一個新 的鏡像開始工做了;
  3. 對於運維人員:在部署時,能夠實現應用的無縫移植。

經常使用命令

  • FROM image_name:tag 定義了使用哪一個基礎鏡像啓動構建流程
  • MAINTAINER user_name 聲明鏡像的建立者
  • ENV key value 設置環境變量 (能夠寫多條)
  • RUN command 是Dockerfile的核心部分(能夠寫多條)
  • ADD source_dir/filedest_dir/file 將宿主機的文件複製到容器內,若是是一個壓縮文件,將會在複製後自動解壓
  • COPY source_dir/filedest_dir/file和ADD類似,可是若是有壓縮文件並不能解壓
  • WORKDIR path_dir 設置工做目錄

使用腳本建立鏡像

  1. 建立目錄
mkdir –p /usr/local/dockerjdk8
複製代碼
  1. 下載jdk-8u171-linux-x64.tar.gz並上傳到服務器(虛擬機)中的/usr/local/dockerjdk8目錄docker

  2. 建立文件Dockerfile vi Dockerfileshell

#依賴鏡像名稱和ID
FROM centos:7
#指定鏡像建立者信息
MAINTAINER ITCAST
#切換工做目錄
WORKDIR /usr
RUN mkdir /usr/local/java
#ADD 是相對路徑jar,把java添加到容器中
ADD jdk‐8u171‐linux‐x64.tar.gz /usr/local/java/
#配置java環境變量
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
複製代碼
  1. 執行命令構建鏡像
docker build ‐t='jdk1.8' .
複製代碼

注意後邊的空格和點,不要省略

  1. 查看鏡像是否創建完成
docker images
複製代碼

Docker私有倉庫

  1. 拉取私有倉庫鏡像(此步省略)
docker pull registry
複製代碼
  1. 啓動私有倉庫容器
docker run ‐di ‐‐name=registry ‐p 5000:5000 registry
複製代碼
  1. 打開瀏覽器 輸入地址http://192.168.184.141:5000/v2/_catalog看到 {"repositories":[]} 表示私有倉庫搭建成功而且內容爲空

  2. 修改daemon.json

vi /etc/docker/daemon.json
複製代碼

添加如下內容,保存退出。

{"insecure‐registries":["192.168.184.141:5000"]}
複製代碼

此步用於讓 docker信任私有倉庫地址

  1. 重啓docker 服務
systemctl restart docker
複製代碼

鏡像上傳至私有倉庫

  1. 標記此鏡像爲私有倉庫的鏡像
docker tag jdk1.8 192.168.184.141:5000/jdk1.8
複製代碼
  1. 再次啓動私服容器
docker start registry
複製代碼
  1. 上傳標記的鏡像
docker push 192.168.184.141:5000/jdk1.8
複製代碼
相關文章
相關標籤/搜索