@
目錄- Docker基本使用
- 核心概念
- docker常用命令
- 鏡像操作
- 修改鏡像源
- 容器操作
- 普通用戶運行docker
Docker基本使用
Docker是一個開源的應用容器引擎;是一個輕量級容器技術;
Docker支持將軟體編譯成一個鏡像;然后在鏡像中各種軟體做好配置,將鏡像發布出去,其他使用者可以直接使用這個鏡像;
運行中的這個鏡像稱為容器,容器啟動是非常快速的,

核心概念
docker主機(Host):安裝了Docker程式的機器(Docker直接安裝在作業系統之上);
docker客戶端(Client):連接docker主機進行操作;
docker倉庫(Registry):用來保存各種打包好的軟體鏡像;
docker鏡像(Images):軟體打包好的鏡像;放在docker倉庫中;
docker容器(Container):鏡像啟動后的實體稱為一個容器;容器是獨立運行的一個或一組應用

使用Docker的步驟:
- 確認要安裝docker的系統的linux內核高于
3.10,低于3.10使用yum update更新uname -r - 安裝docker
yum install docker - 查看docker版本
docker -v - 查看docker狀態
service docker status - 啟動docker
service docker start - 停止docker
service docker stop - 設定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為例:
-
下載tomcat鏡像
docker pull tomcat -
根據鏡像啟動容器,不加TAG默認latest,如果沒有下載latest會先去下載再啟動
docker run --name mytomcat -d tomcat:latest--name:給容器起個名字-d:后臺啟動,不加就是前端啟動,然后你就只能開一個新的視窗連接,不然就望著黑乎乎的視窗,啥也干不了,Ctrl+C即可退出,當然,容器也會關閉 -
查看運行中的容器
docker ps -
停止運行中的容器
docker stop 容器的id # 或者 docker stop 容器的名稱,就是--name給起的哪個名字 -
查看所有的容器
docker ps -a -
啟動容器
docker start 容器id/名字 -
洗掉一個容器
docker rm 容器id/名字 -
啟動一個做了埠映射的tomcat
docker run -d -p 8888:8080 tomcat-d:后臺運行-p: 將主機的埠映射到容器的一個埠 主機埠(8888):容器內部的埠(8080)外界通過主機的8888埠就可以訪問到tomcat,前提是8888埠開放
-
關閉防火墻
# 查看防火墻狀態 service firewalld status # 關閉防火墻 service firewalld stop -
查看容器的日志
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
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/341664.html
標籤:其他
上一篇:痞子衡嵌入式:超級下載演算法RT-UFL v1.0在Segger Ozone下的使用
下一篇:Linux at命令詳解
