centos7 docker安裝及docker常用命令使用

前置條件

  • yum install -y yum-utils device-mapper-persistent-data lvm2
  • yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo 設置阿里雲的docker源
  • yum makecache fast 設置最快的源
  • yum install -y docker-ce 安裝docker
  • service docker start 啓動docker
  • docker pull hello-world 拉取名爲hello-world的docker鏡像
  • docker run hello-world 運行鏡像

阿里雲鏡像加速器

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://vw8b6y27.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

宿主機與容器端口映射

  • docker run -d -p 8000:8080 tomcat 後臺運行容器
  • docker ps 列出當前正在映射的容器以及相關信息
  • docker rm (-f) 容器id 移除(非運行狀態下的)容器 -f 強制移除
  • docker stop 容器id 停止容器
  • docker rmi (-f) 鏡像名:tag 刪除鏡像

在容器中執行命令

  • docker exec -it 容器id /bin/bash
    在這裏插入圖片描述

容器啓動tomcat鏡像訪問報404問題

通過docker exec -it 容器id /bin/bash進入容器中,看到有webapps跟webapps-dist目錄,然後查看webapps目錄,發現竟然是空的,而webapps-dist是非空的,把webapps文件夾刪除,將webapps-dist重命名webapps,然後再訪問docker容器即可訪問到

構建自己的docker鏡像

  • 創建目錄 mkdir -p /usr/image
  • 在目錄下 mkdir first-dockerfile,
  • 在first-dockerfile目錄下創建docker-web目錄及文件Dockerfile,編輯Dockerfile如下
# 設置基準鏡像
FROM tomcat:latest
# 鏡像的擁有者
MAINTAINER jack.com
# 設置切換工作目錄路徑 cd /usr/local/tomcat/webapps
WORKDIR /usr/local/tomcat/webapps
# 將docker-web中的所有內容複製到容器的工作目錄下的docker-web目錄
ADD docker-web ./docker-web

  • 進入docker-web目錄,新建index.html,編輯index.html文件內容
<h1>自定義docker file<h1>
  • 回到first-dockerfile目錄,通過 docker build -t jack.com/mywebapp:1.0 .構建docker-file,如下圖所示
    在這裏插入圖片描述
  • 運行docker鏡像
    docker run -d -p 8001:8080 jack.com/mywebapp:1.0
  • 測試自定docker 如下圖(亂碼由於編碼問題,此處不關心)

在這裏插入圖片描述

FROM -基於基準鏡像

  • FROM centos #製作基準鏡像(基於centos:latest)
  • FROM scratch #不依賴任何基準鏡像base image
  • FROM tomcat:9.0.22-jdk8-openjdk
  • 儘量使用官方提供的Base Image
  • MAINTAINER jack.com(dockerfile的維護機構或個人)
  • LABEL version = “1.0”(維護的其他信息)
  • LABEL description = “傑克個人工作室”
  • WORKDIR /usr/local/newdir #自動創建

ADD&COPY

  • ADD hello / 複製到容器內部的根路徑下
  • ADD test.tar.gz / 複製到根目錄並解壓
  • ADD 除了複製,還具備添加遠程文件的功能

設置環境常量

  • ENV JAVA_HOME /usr/local/openjdk8
  • RUN ${JAVA_HOME}/bin/java -jar test.jar
  • 儘量使用環境常量,可提高程序維護性

docker容器單項訪問

圖docker容器單項訪問

  • docker run -d --name web tomcat 創建名稱爲web的tomcat容器
  • docker run -d --name database -it centos /bin/bash 創建名爲database的centos容器
  • docker inspect 容器id
  • docker run -d --name web --link database tomcat 創建容器並添加鏈接
  • docker exec -it 容器id /bin/bash
  • ping 172.17.0.3/ping database

Bridge網橋雙向通信

  • docker network ls 查看docker容器底層網絡服務明細
  • docker network create -d bridge my-bridge 創建網橋
  • docker network connect my-bridge web 將web容器綁定my-bridge網橋

容器間共享數據

  • docker run --name 容器名 -v 宿主機路徑:容器內掛載路徑 鏡像名
    實例:docker run --name t1 -v /usr/webapps:/usr/local/tomcat/webapps tomcat
  • docker create --name webpage -v /webapps:/tomcat/webapps tomcat /bin/true 創建共享容器
  • docker run --volumes-from webpage --name t1 -d tomcat 共享容器掛載點

Docker-compose安裝

  • sudo curl -L “https://github.com/docker/compose/releases/download/1.25.0/docker-compose-(unames)(uname -s)-(uname -m)” -o /usr/local/bin/docker-compose 獲取並自動安裝
  • chmod +x /usr/local/bin/docker-compose 授權
  • docker-compose -version 查看版本

通過docker-compose創建開源博客worldpress

  1. mkdir -p /usr/wordpress 創建新目錄並切換
  2. vim docker-compose.yml
version: '3.3'

services:
   db:
     image: mysql:5.7
     volumes:
       - db_data:/var/lib/mysql
     restart: always
     environment:
       MYSQL_ROOT_PASSWORD: somewordpress
       MYSQL_DATABASE: wordpress
       MYSQL_USER: wordpress
       MYSQL_PASSWORD: wordpress

   wordpress:
     depends_on:
       - db
     image: wordpress:latest
     ports:
       - "8000:80"
     restart: always
     environment:
       WORDPRESS_DB_HOST: db:3306
       WORDPRESS_DB_USER: wordpress
       WORDPRESS_DB_PASSWORD: wordpress
       WORDPRESS_DB_NAME: wordpress
volumes:
    db_data: {}
  1. docker-compose up -d 安裝博客
發佈了24 篇原創文章 · 獲贊 1 · 訪問量 600
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章