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 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 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的学习总结的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Vue axios 上传图片
- 下一篇: js去掉最右边的逗号