Docker ->(個人學習記錄筆記)


@

Docker基本使用

Docker是一個開源的應用容器引擎;是一個輕量級容器技術;

Docker支持將軟件編譯成一個鏡像;然后在鏡像中各種軟件做好配置,將鏡像發布出去,其他使用者可以直接使用這個鏡像;

運行中的這個鏡像稱為容器,容器啟動是非常快速的。
在這里插入圖片描述

核心概念

docker主機(Host):安裝了Docker程序的機器(Docker直接安裝在操作系統之上);

docker客戶端(Client):連接docker主機進行操作;

docker倉庫(Registry):用來保存各種打包好的軟件鏡像;

docker鏡像(Images):軟件打包好的鏡像;放在docker倉庫中;

docker容器(Container):鏡像啟動后的實例稱為一個容器;容器是獨立運行的一個或一組應用

在這里插入圖片描述

使用Docker的步驟:

  1. 確認要安裝docker的系統的linux內核高於3.10,低於3.10使用yum update更新
    uname -r
    
  2. 安裝docker
    yum install docker
    
  3. 查看docker版本
    docker -v
    
  4. 查看docker狀態
    service docker status
    
  5. 啟動docker
    service docker start
    
  6. 停止docker
    service docker stop
    
  7. 設置docker開機自啟
    systemctl enable docker
    

在這里插入圖片描述

docker常用命令

鏡像操作

操作 命令 說明
檢索 docker search 關鍵字 eg:docker search redis 我們經常去docker hub上檢索鏡像的詳細信息,如鏡像的TAG。
拉取 docker pull 鏡像名:tag :tag是可選的,tag表示標簽,多為軟件的版本,默認是latest
列表 docker images 查看所有本地鏡像
刪除 docker rmi image-id 刪除指定的本地鏡像
在這里插入圖片描述

修改鏡像源

修改 /etc/docker/daemon.json ,寫入如下內容(如果文件不存在請新建該文件)

vim /etc/docker/daemon.json

# 內容:

{
"registry-mirrors":["http://hub-mirror.c.163.com"]
}

國內鏡像源 地址
Docker 官方中國區 https://registry.docker-cn.com
網易 http://hub-mirror.c.163.com
中國科技大學 https://docker.mirrors.ustc.edu.cn
阿里雲 https://pee6w651.mirror.aliyuncs.com

在這里插入圖片描述

容器操作

以tomcat為例:

  1. 下載tomcat鏡像

    docker pull tomcat
    
  2. 根據鏡像啟動容器,不加TAG默認latest,如果沒有下載latest會先去下載再啟動

    docker run --name mytomcat -d tomcat:latest
    

    --name:給容器起個名字

    -d:后台啟動,不加就是前端啟動,然后你就只能開一個新的窗口連接,不然就望着黑乎乎的窗口,啥也干不了,Ctrl+C即可退出,當然,容器也會關閉

  3. 查看運行中的容器

    docker ps
    
  4. 停止運行中的容器

    docker stop  容器的id
    
    # 或者
    
    docker stop  容器的名稱,就是--name給起的哪個名字
    
  5. 查看所有的容器

    docker ps -a
    
  6. 啟動容器

    docker start 容器id/名字
    
  7. 刪除一個容器

    docker rm 容器id/名字
    
  8. 啟動一個做了端口映射的tomcat

    docker run -d -p 8888:8080 tomcat
    

    -d:后台運行

    -p: 將主機的端口映射到容器的一個端口 主機端口(8888):容器內部的端口(8080)

    外界通過主機的8888端口就可以訪問到tomcat,前提是8888端口開放

  9. 關閉防火牆

    # 查看防火牆狀態
    service firewalld status
    
    # 關閉防火牆
    service firewalld stop
    
  10. 查看容器的日志

    docker logs 容器id/名字
    

在這里插入圖片描述

以mysql為例:

# 拉取鏡像
docker pull mysql:5.7.28

# 運行mysql容器
 docker run --name mysql -e MYSQL_ROOT_PASSWORD=root -d mysql:5.7.28

--name mysql:容器的名字是mysql;

MYSQL_ROOT_PASSWORD=root:root用戶的密碼是root (必須指定)

連接容器內mysql

在使用 -d 參數時,容器啟動后會進入后台。此時想要進入容器,可以通過以下指令進入:

  • docker attach

  • docker exec:推薦使用 docker exec 命令,因為此退出容器終端,不會導致容器的停止。

    docker exec -it mysql bash
    

    -i: 交互式操作。

    -t: 終端。

    mysql: 名為mysql的鏡像。

    bash:放在鏡像名后的是命令,這里我們希望有個交互式 Shell,因此用的是bash,也可以用/bin/bash

    連接上以后就可以正常使用mysql命令操作了

    mysql -uroot -proot
    

    直接使用端口映射更加方便

    docker run --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root -d mysql:5.7.28
    

在這里插入圖片描述

普通用戶運行docker

docker 命令只能由root用戶運行,普通用戶還需要加上sudo命令。在第三方開發工具中無法使用docker插件

docker守護進程啟動的時候,會默認賦予名為docker的用戶組讀寫Unix socket的權限,因此只要創建docker用戶組,並將當前用戶加入到docker用戶組中,那么當前用戶就有權限訪問Unix socket了,進而也就可以執行docker相關命令

安裝docker已經創建了docker用戶組,只需要將用戶加入到docker組即可

sudo gpasswd -a 用戶名 docker


免責聲明!

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



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