- Docker
- Docker安裝
- Docker卸載
- Docker配置鏡像源
- 配置鏡像加速
- Docker服務命令
- 1.鏡像操作命令
- 2.容器操作命令
- 安裝Mysql
- **數據卷掛載**
Docker
在linux中軟件安裝說起:
以前在linux中安裝軟件,是直接安裝在linux操作系統中,軟件和操作系統耦合度很高,不方便管理.
因為linux版本不同,環境也就不同了.
docker是一種容器技術(軟件),提供標準的應用鏡像(包含應用+應用的依賴) , 我們就可以非常輕松在docker中安裝應用,每一個應用安裝好后,就是一個獨立的容器.解決軟件跨環境遷移的問題
主要功能:
-
打包: 可以把軟件以及軟件的依賴打包制作成一個鏡像 (例如后面把springboot和jdk打包成一個鏡像)
-
分發: 可以把打包好的鏡像上傳到鏡像倉庫,或者其他的linux系統中
-
部署: 可以非常方便的進行安卓,只需要一個命令即可.
Docker安裝
1.安裝yum配置工具
yum install -y yum-utils
2.配置docker的yum源
yum-config-manager \
--add-repo \
https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
3.安裝
yum install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin
4.測試
docker -v
5.啟動,關閉,開機啟動
systemctl start dockersystemctl stop dockersystemctl enable docker 設置開機啟動 必須的
Docker卸載
停止服務
systemctl stop docker
卸載
yum remove docker-ce docker-ce-cli containerd.io docker-compose-plugin
刪除文件
rm -rf /var/lib/docker
rm -rf /var/lib/containerd
Docker配置鏡像源
由于國外的鏡像倉庫目前不能訪問,
所以我們需要配置一個其他的鏡像源地址
配置鏡像加速
在etc下創建docker
mkdir -p /etc/docker
進入docker目錄
cd /etc/docker
創建daemon.json文件
touch daemon.json
修改文件
vim daemon.json
{"registry-mirrors": ["https://dockerhub.icu"]}
重載配置
systemctl daemon-reload
重啟
systemctl restart docker
Docker服務命令
鏡像(image):Docker將應用程序以及所需依賴、函數庫、環境、配置等文件打包在一起,稱為鏡像
容器(container):鏡像中的應用程序運行后形成的進程就行容器,只是Docker會給容器做隔離,對外部不可見
docker命令分兩大類:
1.鏡像操作命令
從鏡像倉庫下載鏡像到docker本地
docker pull [應用]
查看本地鏡像
docker images
刪除docker鏡像
docker rmi 鏡像名:版本/鏡像id
從docker保存鏡像到linux本地( 需要保存到linux中那個目錄, 進入到指定目錄執行保存命令)
docker save 鏡像名 > 鏡像名.tar
從linux本地 加載鏡像到docker中
docker load 鏡像名 < 鏡像名.tar
2.容器操作命令
通過鏡像安裝
docker run 參數
查看容器
docker ps -a
啟動鏡像
docker start 容器名
停止容器
docker stop 容器名
刪除容器(卸載)
docker rm 容器名
安裝Mysql
1.下載mysql鏡像
? 在線下載 docker pull mysql:8.0
? 加載本地鏡像 docker load
下載成功!!
下載網絡問題
從Docker拉取鏡像一直失敗超時?這些解決方案幫你解決煩惱_docker拉取鏡像超時-CSDN博客
如果下載存在網絡問題,則在vim daemon.json添加一下設置
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{"registry-mirrors": ["https://do.nark.eu.org","https://dc.j8.work","https://docker.m.daocloud.io","https://dockerproxy.com","https://docker.mirrors.ustc.edu.cn","https://docker.nju.edu.cn"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
2.安裝mysql容器
docker run -d -p 3306:3306 \
--name mysql \
--restart=always \
--privileged=true \
-e TZ=Asia/Shanghai \
-e MYSQL_ROOT_PASSWORD=root \
mysql:8.0
3.啟動,停止,刪除容器
docker start 容器名 啟動容器docker stop 容器名 停止容器docker rm 容器名 刪除容器docker logs 容器名 查詢容器日志
4.進入到容器中的命令行
docker exec -it 容器名 bash
進入mysql
mysql -uroot -proot
在mysql創建新的連接
Address寫自己虛擬機地址
eg我自己ip:192.168.80.128
此時發現sql連接失敗,這是由于兩邊密碼的加密方式不一樣,所以我們需要改變加密方式
改變加密方式在mysql終端
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'root';
此時再去連接
退出
exit
數據卷掛載
容器是封閉的,與外界隔離的, 如果需要操作容器內的文件不方便,
可以將容器內的目錄 與 容器外(linux)中的目錄建議映射 掛載
創建mysql數據卷
mkdir -p /opt/mysql/data
安裝記得刪除之前的容器
docker run -d -p 3306:3306 \
--name mysql \
--restart=always \
--privileged=true \
-e TZ=Asia/Shanghai \
-e MYSQL_ROOT_PASSWORD=root \
-v /opt/mysql/data:/var/lib/mysql \mysql:8.0