Docker安裝及使用Docker部署常用環境
阿新 • • 發佈:2020-12-08
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