日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

docker的学习总结

發布時間:2025/6/17 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 docker的学习总结 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、docker簡介

docker是一個開源的應用容器引擎;是一個輕量級容器技術; docker支持將軟件編譯成一個鏡像;然后在鏡像中各種軟件做好配置,將鏡像發布出去,其他使用者可以直接使用這個鏡像; 運行中的這個鏡像稱為容器,容器啟動是非常快速的。


二、docker的核心概念

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

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

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

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

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


三、使用docker步驟

1)、安裝docker?

2)、去docker倉庫找到這個軟件對應的鏡像(docker hub);

3)、使用docker運行這個鏡像,這個鏡像就會生成一個docker容器;?

4)、對容器的啟動停止就是對軟件的啟動停止;

四、docker的安裝與卸載

1)、docker的安裝命令?

1、檢查內核版本,必須是3.10及以上

uname -r 復制代碼

# step 1: 安裝必要的一些系統工具 sudo yum install -y yum-utils device-mapper-persistent-data lvm2 # Step 2: 添加軟件源信息 sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo # Step 3: 更新并安裝 Docker-CE sudo yum makecache fast sudo yum -y install docker-ce # Step 4: 開啟Docker服務 sudo service docker start # 注意: # 官方軟件源默認啟用了最新的軟件,您可以通過編輯軟件源的方式獲取各個版本的軟件包。例如官方并沒有將測試版本的軟件源置為可用,你可以通過以下方式開啟。同理可以開啟各種測試版本等。 # vim /etc/yum.repos.d/docker-ce.repo # 將 [docker-ce-test] 下方的 enabled=0 修改為 enabled=1 # # 安裝指定版本的Docker-CE: # Step 1: 查找Docker-CE的版本: # yum list docker-ce.x86_64 --showduplicates | sort -r # Loading mirror speeds from cached hostfile # Loaded plugins: branch, fastestmirror, langpacks # docker-ce.x86_64 17.03.1.ce-1.el7.centos docker-ce-stable # docker-ce.x86_64 17.03.1.ce-1.el7.centos @docker-ce-stable # docker-ce.x86_64 17.03.0.ce-1.el7.centos docker-ce-stable # Available Packages # Step2 : 安裝指定版本的Docker-CE: (VERSION 例如上面的 17.03.0.ce.1-1.el7.centos) # sudo yum -y install docker-ce-[VERSION]復制代碼

安裝校驗

root@iZbp12adskpuoxodbkqzjfZ:$ docker version Client:Version: 17.03.0-ceAPI version: 1.26Go version: go1.7.5Git commit: 3a232c8Built: Tue Feb 28 07:52:04 2017OS/Arch: linux/amd64Server:Version: 17.03.0-ceAPI version: 1.26 (minimum version 1.12)Go version: go1.7.5Git commit: 3a232c8Built: Tue Feb 28 07:52:04 2017OS/Arch: linux/amd64Experimental: false復制代碼

2)、docker的卸載命令

#1.查詢安裝過的包 yum list installed | grep docker #2.刪除安裝的軟件包 yum -y remove containerd.io.x86_64 docker-ce.x86_64 docker-ce-cli.x86_64 #3.刪除鏡像/容器等rm -rf /var/lib/docker復制代碼

五、docker常用命令&操作

  • docker操作
    • 檢索 | docker search 關鍵字 eg:docker search redis
    • 拉取 | docker pull 鏡像名:tag
    • 列表 | docker images
    • 刪除 | docker rmi image-id

    說明:我們經常去docker hub上檢索鏡像的詳細信息,如鏡像的TAG。 :tag是可選的,tag表? ? ? ? ? ? 示標簽,多為軟件的版本,默認是latest 查看所有本地鏡像 刪除指定的本地鏡像

    ? 2.容器操作

    • 搜索鏡像 [root@localhost ~]# docker search tomcat
    • 拉取鏡像 [root@localhost ~]# docker pull tomcat
    • 根據鏡像啟動容器 docker run --name mytomcat【自命名】 -d tomcat:latest【鏡像名:標簽】?
    • docker ps 查看運行中的容器?
    • 查看所有的容器 docker ps -a
    • ?停止運行中的容器 docker stop 容器的id【下圖紅色標注即為 docker ps命令查出的容器id】
    • 啟動容器 docker start 容器id
    • 刪除一個容器 docker rm 容器id
    • 啟動一個做了端口映射的tomcat [root@localhost ~]# docker run -d -p 8888:8080 tomcat -d:后臺運行 -p: 將主機的端口映射到容器的一個端口 主機端口:容器內部的端口【下圖紅色標注即為主機端口與容器內部端口映射說明】
    • 查看容器的日志docker logs container-name【容器名】/container-id【容器id】
    • 更多命令可以參考https://docs.docker.com/engine/reference/commandline/docker/ 也可以參考每一個鏡像的文檔內部有高級命令操作。

    六、安裝mysql操作實例

  • 去docker hub 查找所需鏡像和tag


  • docker pull mysql【拉去鏡像】

  • 參考docker hub 給出的啟動命令選擇相應的啟動方式

    比如:

    [root@localhost ~]# docker run -p 3306:3306 --name mysql02 -e MYSQL_ROOT_PASSWORD=123456 -d mysql ad10e4bc5c6a0f61cbad43898de71d366117d120e39db651844c0e73863b9434 [root@localhost ~]# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES ad10e4bc5c6a mysql "docker-entrypoint.sh" 4 seconds ago Up 2 seconds 0.0.0.0:3306->3306/tcp mysql02 復制代碼

  • Navicat連接mysql數據庫報錯問題【client does not support authentication】

  • 解決辦法:

    • docker ps -a 查找到容器id/容器名
    • docker exec -it 容器id/容器名 bash 進入mysql容器?
    • mysql -uroot -p登陸mysql
    • use mysql【選擇mysql database】; 進入mysql
    • 查詢用戶表信息:select host,user,authentication_string from user ;
    • 更改host為% user為root的用戶的authentication_string

      host為%方便遠程連接

      update user set authentication_string = 'root' where user = 'root' and host = '%';

      update user set authentication_string = 'root' where user = 'root' and host = 'localhost';

    • 如果還不行使用下面命令:? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? alter user 'root'@'localhost' identified with mysql_native_password by '123456';

      alter user 'root'@'%' identified with mysql_native_password by '123456';

    七、docker環境部署web項目
  • 從docker hub 拉取Tomcat,并將打好的war包上傳之宿主機器一個目錄下:/home/dubbo-admin.war 啟動tomcat,并用瀏覽器訪問http://host_path:8080查看tomcat啟動情況

    docker run -it --name dubbo-admin -d --rm -p 8080:8080 tomcat 復制代碼

  • 進入docker容器中,并查看tomcat容器路徑

    docker exec -i -t <docker_name> bash 復制代碼

  • 將宿主機器的war包復制到docker容器中:

    #從主機復制到容器 sudo docker cp host_path(宿主機器路徑) containerID:container_path(容器路徑) #從容器復制到主機 sudo docker cp containerID:container_path host_path #例如 sudo docker cp /home/dubbo-admin-2.6.war 603140acbd3c:/usr/local/tomcat/webapps 復制代碼

  • 上述執行有個弊端就是 容器重啟后項目就會不再了,所以我們需要打包dubbo-admin鏡像

    #鏡像打包 docker commit -m "提交信息" -a "作者" ${CONTAINER_ID} ${NEW_IMAGE_NAME} 復制代碼


  • 總結

    以上是生活随笔為你收集整理的docker的学习总结的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。