Docker環境下的前后端分離項目部署與運維(五)Docker虛擬機


Docker虛擬機架構

雲計算中的Docker虛擬機

Docker鏡像與容器

CentOS7安裝Docker

yum -y update
yum install -y docker

管理Docker虛擬機

  • 啟動、關閉與重啟
    --啟動
    service docker start
    --關閉
    service docker stop
    --重啟
    service docker restart

Docker虛擬機管理命令

在線安裝鏡像 

舉個例子:在線安裝Java鏡像

docker search java
docker pull java

國外鏡像倉庫下載速度較慢,建議使用國內鏡像倉庫,如DaoCloud

我這邊的加速命令

curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://f1361db2.m.daocloud.io

執行成功之后會在 /etc/docker/daemon.json 中加入 {"registry-mirrors": ["http://f1361db2.m.daocloud.io"],} 配置

注意,這里多了個  號,我們要編輯 /etc/docker/daemon.json 進行刪除。

然后我們搜索Java鏡像

docker search java

我們這邊選擇 docker.io/java 進行安裝

docker pull docker.io/java

導出、導入、查看、刪除鏡像

  • 導出鏡像
    docker save java > /home/java.tar.gz
  • 導入鏡像
    docker load < /home/java.tar.gz
  • 查看鏡像
    docker images
  • 刪除鏡像
    docker rmi java

啟動容器

啟動鏡像會創建出一個運行狀態的容器

# -it以交互模式運行容器,為容器重新分配一個偽輸入終端
# --name為容器指定一個名稱
# java鏡像名稱
# bash進入容器命令行
docker run -it --name myjava java bash
# -p主機:docker內部端口映射
docker run -it --name myjava -p 9000:8080 -p 9001:8085 java bash
# -v目錄文件映射,主機/home/project,dicker內部目錄/soft
# --privileged文件操作擁有最高權限
docker run -it --name myjava -v /home/project:/soft --privileged java bash

示例:

[root@localhost home]# docker run -it --name myjava -p 9000:8080 -p 9001:8085 -v /home/project:/soft --privileged --name myjava docker.io/java bash
root@042a54274f11:/# java -version
openjdk version "1.8.0_111"
OpenJDK Runtime Environment (build 1.8.0_111-8u111-b14-2~bpo8+1-b14)
OpenJDK 64-Bit Server VM (build 25.111-b14, mixed mode)
root@042a54274f11:/# javac
Usage: javac <options> <source files>
where possible options include:
  -g                         Generate all debugging info
  -g:none                    Generate no debugging info
  -g:{lines,vars,source}     Generate only some debugging info
  -nowarn                    Generate no warnings
  -verbose                   Output messages about what the compiler is doing
  -deprecation               Output source locations where deprecated APIs are used
  -classpath <path>          Specify where to find user class files and annotation processors
  -cp <path>                 Specify where to find user class files and annotation processors
  -sourcepath <path>         Specify where to find input source files
  -bootclasspath <path>      Override location of bootstrap class files
  -extdirs <dirs>            Override location of installed extensions
  -endorseddirs <dirs>       Override location of endorsed standards path
  -proc:{none,only}          Control whether annotation processing and/or compilation is done.
  -processor <class1>[,<class2>,<class3>...] Names of the annotation processors to run; bypasses default discovery process
  -processorpath <path>      Specify where to find annotation processors
  -parameters                Generate metadata for reflection on method parameters
  -d <directory>             Specify where to place generated class files
  -s <directory>             Specify where to place generated source files
  -h <directory>             Specify where to place generated native header files
  -implicit:{none,class}     Specify whether or not to generate class files for implicitly referenced files
  -encoding <encoding>       Specify character encoding used by source files
  -source <release>          Provide source compatibility with specified release
  -target <release>          Generate class files for specific VM version
  -profile <profile>         Check that API used is available in the specified profile
  -version                   Version information
  -help                      Print a synopsis of standard options
  -Akey[=value]              Options to pass to annotation processors
  -X                         Print a synopsis of nonstandard options
  -J<flag>                   Pass <flag> directly to the runtime system
  -Werror                    Terminate compilation if warnings occur
  @<filename>                Read options and filenames from file

root@042a54274f11:/# cd /soft/
root@042a54274f11:/soft# ls
root@042a54274f11:/soft# touch hello.txt
root@042a54274f11:/soft# echo Thanks > hello.txt
root@042a54274f11:/soft# exit
exit
[root@localhost home]# ls
java.tar.gz  project  wyt
[root@localhost home]# cd project/
[root@localhost project]# ls
hello.txt
View Code

暫停、恢復、停止、啟動容器

# 暫停容器
docker pause myjava
# 恢復容器
docker unpause myjava
# 停止容器
docker stop myjava
# 開始容器
docker start -i myjava
# 刪除容器
docker rm myjava

查看日志

docker logs -f -t --since="20187-7-30" --tail=10 docker_container_name
# --since : 此參數指定了輸出日志開始日期,即只輸出指定日期之后的日志。
# -f : 查看實時日志
# -t : 查看日志產生的日期
# -tail=10 : 查看最后的10條日志。
# docker_container_name : 容器名稱

查看容器列表

docker ps -a

查看容器信息

docker inspect 容器ID

數據卷管理

docker volume create 數據卷名稱  #創建數據卷
docker volume rm 數據卷名稱  #刪除數據卷
docker volume inspect 數據卷名稱  #查看數據卷

網絡管理

docker network ls 查看網絡信息
docker network create --subnet=網段 網絡名稱
docker network rm 網絡名稱

避免VM虛擬機掛起恢復之后,Docker虛擬機斷網

vi /etc/sysctl.conf
文件中添加 net.ipv4.ip_forward=1 這個配置
#重啟網絡服務
systemctl  restart network

 

centos7 docker升級到最新穩定版本

刪除老版本

  1. 停止docker服務
    systemctl stop docker
  2. 查看當前版本
    rpm -qa | grep docker

     

  3. 卸載軟件包

    yum erase docker \
                      docker-client \
                      docker-client-latest \
                      docker-common \
                      docker-latest \
                      docker-latest-logrotate \
                      docker-logrotate \
                      docker-selinux \
                      docker-engine-selinux \
                      docker-engine \
                      docker-ce
  4. 刪除相關配置文件
    find /etc/systemd -name '*docker*' -exec rm -f {} \;
    find /etc/systemd -name '*docker*' -exec rm -f {} \;
    find /lib/systemd -name '*docker*' -exec rm -f {} \;
    rm -rf /var/lib/docker   #刪除以前已有的鏡像和容器,非必要
    rm -rf /var/run/docker 

安裝新版本

centos7 修改yum源為阿里源

Ubuntu 修改apt-get源為阿里源

  1. 查看可安裝的版本
    # 安裝需要的依賴包
    yum install -y yum-utils device-mapper-persistent-data
    # 配置穩定倉庫
    yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
    # 安裝docker-ce
    yum install docker-ce
    # 查詢不同版本的Docker
    yum list docker-ce --showduplicates | sort -r
  2. 安裝最新版本
    yum install docker-ce -y
  3. 啟動並開機自啟

    systemctl start docker
    systemctl enable docker
  4. 查看docker版本

    docker version 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM