1. 程式人生 > 實用技巧 >Docker安裝及使用Docker部署常用環境

Docker安裝及使用Docker部署常用環境

Docker部署

Docker的安裝命令

# 1、yum 包更新到最新 
yum update
# 2、安裝需要的軟體包, yum-util 提供yum-config-manager功能,另外兩個是devicemapper驅動依賴的 
yum install -y yum-utils device-mapper-persistent-data lvm2
# 3、 設定yum源
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
# 4、 安裝docker,出現輸入的介面都按 y 
yum install -y docker-ce
# 5、 檢視docker版本,驗證是否驗證成功
docker -v

Docker映象加速器

使用阿里雲映象加速器,登入阿里雲,搜尋容器映象服務->映象中心->映象加速器,按照操作文件操作即可!

操作Docker的命令

啟動docker服務

systemctl start docker

停止docker服務

systemctl stop docker

重啟docker服務

systemctl restart docker

檢視docker服務狀態

systemctl status docker

開機啟動docker服務

systemctl enable docker

Docker映象相關命令

菜鳥教程Docker映象相關 https://www.runoob.com/docker/docker-command-manual.html

檢視本地所有映象

docker images 

按照名稱搜尋映象

docker search 映象名稱 #NAME:映象名稱  DESCRIPTION:映象描述  STARS:使用者評價,反應一個映象的受歡迎程度  OFFICIAL:是否官方  AUTOMATED:自動構建,表示該映象由Docker Hub自動構建流程建立的 

拉取映象

docker pull 映象名稱:版本號(不寫預設最新版本)

刪除映象(慎用)

docker rmi 映象id # 刪除指定本地映象
docker rmi `docker images -q` # 刪除所有本地映象

容器相關命令

檢視容器

docker ps # 檢視正在執行的容器
docker ps –a # 檢視所有容器,包括正在執行和停止的容器

建立並啟動容器

docker run -it \          #前臺啟動容器
--name=mycentos7 \        #為容器命名為mycentos7
centos:7 \                #映象名稱 centos:7 也可以使用映象id 
/bin/bash 
docker run -di \         #後臺啟動容器
--name=mycentos7 \       #為容器命名為mycentos7
centos:7                 #映象名稱 centos:7 也可以使用映象id 

#登入進入容器命令為:docker exec -it container_name (或者 container_id) /bin/bash(exit退出時,容器不會停止)
docker exec -it mycentos7 /bin/bash

啟動容器

docker start 容器名稱或者容器id

停止容器

docker stop 容器名稱或者容器id

刪除容器

#刪除指定容器
docker rm 容器名稱或者容器id
# 刪除所有容器:
docker rm `docker ps -a -q`

注意:如果容器是執行狀態則刪除失敗,需要停止容器才能刪除
檢視容器資訊

docker inspect 容器名稱或者容器id

Dockerfile 建立映象
關鍵字:

關鍵字 作用 備註
FROM 指定父映象 指定dockerfile基於哪個image構建
MAINTAINER 作者資訊 用來標明這個dockerfile誰寫的
LABEL 標籤 用來標明dockerfile的標籤 可以使用Label代替Maintainer 最終都是在docker image基本資訊中可以檢視
RUN 執行命令 執行一段命令 預設是/bin/sh 格式: RUN command 或者 RUN ["command" , "param1","param2"]
CMD 容器啟動命令 提供啟動容器時候的預設命令 和ENTRYPOINT配合使用.格式 CMD command param1 param2 或者 CMD ["command" , "param1","param2"]
ENTRYPOINT 入口 一般在製作一些執行就關閉的容器中會使用
COPY 複製檔案 build的時候複製檔案到image中
ADD 新增檔案 build的時候新增檔案到image中 不僅僅侷限於當前build上下文 可以來源於遠端服務
ENV 環境變數 指定build時候的環境變數 可以在啟動的容器的時候 通過-e覆蓋 格式ENV name=value
ARG 構建引數 構建引數 只在構建的時候使用的引數 如果有ENV 那麼ENV的相同名字的值始終覆蓋arg的引數
VOLUME 定義外部可以掛載的資料卷 指定build的image那些目錄可以啟動的時候掛載到檔案系統中 啟動容器的時候使用 -v 繫結 格式 VOLUME ["目錄"]
EXPOSE 暴露埠 定義容器執行的時候監聽的埠 啟動容器的使用-p來繫結暴露埠 格式: EXPOSE 8080 或者 EXPOSE 8080/udp
WORKDIR 工作目錄 指定容器內部的工作目錄 如果沒有建立則自動建立 如果指定/ 使用的是絕對地址 如果不是/開頭那麼是在上一條workdir的路徑的相對路徑
USER 指定執行使用者 指定build或者啟動的時候 使用者 在RUN CMD ENTRYPONT執行的時候的使用者
HEALTHCHECK 健康檢查 指定監測當前容器的健康監測的命令 基本上沒用 因為很多時候 應用本身有健康監測機制
ONBUILD 觸發器 當存在ONBUILD關鍵字的映象作為基礎映象的時候 當執行FROM完成之後 會執行 ONBUILD的命令 但是不影響當前映象 用處也不怎麼大
STOPSIGNAL 傳送訊號量到宿主機 該STOPSIGNAL指令設定將傳送到容器的系統呼叫訊號以退出。
SHELL 指定執行指令碼的shell 指定RUN CMD ENTRYPOINT 執行命令的時候 使用的shell

MySQL的部署

docker run -id \
-p 3306:3306 \
--name=c_mysql \
-v /root/mysql/conf:/etc/mysql/conf.d \
-v /root/mysql/logs:/logs \
-v /root/mysql/data:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=123456 \
mysql:5.6

Tomcat的部署

docker run -id --name=c_tomcat \
-p 8080:8080 \
-v $PWD:/usr/local/tomcat/webapps \
tomcat 

Nginx部署

docker run -id --name=c_nginx \
-p 80:80 \
-v /root/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \
-v /root/nginx/logs:/var/log/nginx \
-v /root/nginx/html:/usr/share/nginx/html \
nginx

Redis的部署

docker run -id --name=c_redis \
-p 6379:6379 \
redis:5.0