目錄
一.安裝docker
1.1查看Linux版本的命令這里推薦兩種:
1.2查看內核版本有三種方式:
2.安裝
2.1 如果之前安裝了docker,先刪除舊版本的doker
2.2 安裝需要的軟件包,yum-util提供yum-config-manager功能,另外兩個是devicemapper驅動依賴
2.3 設置yum源
2.4 安裝docker
2.5 docker啟動并設置開機自啟
2.6 驗證docker是否安裝成功
二 dockers安裝mysql
1 拉取mysql鏡像
1.1 拉取提示超時,根據下面的博客解決
2 查看鏡像是否拉取成功
3 運行mysql鏡像,啟動實例/容器
?解讀:
3.1 docker啟動mysql失敗
4 連接mysql
5 進入容器
6 查看mysql容器的詳情
三、docker安裝nginx
1 拉取nginx鏡像
2 創建并運行nginx容器
三 通用指令
1 將鏡像保存為文件,讓別人也能使用這個鏡像,以nginx為例
2? 啟動docker容器 docker start 容器名
?3 關閉docker容器
?4 刪除容器,需要先停止容器
5 刪除鏡像
6 查看鏡像
7 查看容器
一.安裝docker
1、Docker及系統版本 Docker從17.03版本之后分為CE(Community Edition: 社區版)和EE(Enterprise Edition: 企業版)。相對于社區版本,企業版本強調安全性,但需付費使用。這里我們使用社區版本即可。
Docker支持64位版本的CentOS 7和CentOS 8及更高版本,它要求Linux內核版本不低于3.10。
1.1查看Linux版本的命令這里推薦兩種:
lsb_release -a或cat /etc/redhat-release。
1.2查看內核版本有三種方式:
cat /proc/version
uname -a
uname -r
2.安裝
2.1 如果之前安裝了docker,先刪除舊版本的doker
`yum remove docker` \``docker-client \``docker-client-latest \``docker-common \``docker-latest \``docker-latest-logrotate \``docker-logrotate \``docker-selinux \``docker-engine-selinux \``docker-engine \``docker-ce`
2.2 安裝需要的軟件包,yum-util提供yum-config-manager功能,另外兩個是devicemapper驅動依賴
yum install -y yum-utils device-mapper-persistent-data lvm2
2.3 設置yum源
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
如果出現下載緩慢,或者如下圖的報錯,可以切換成國內的鏡像源,如阿里云
下載阿里云的docker鏡像倉庫文件
curl -o /etc/yum.repos.d/docker-ce.repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
2.4 安裝docker
sudo yum install -y docker-ce docker-ce-cli containerd.io
2.5 docker啟動并設置開機自啟
sudo yum install -y docker-ce docker-ce-cli containerd.io
sudo systemctl enable docker
2.6 驗證docker是否安裝成功
docker --version
二 dockers安裝mysql
1 拉取mysql鏡像
sudo docker pull mysql:5.7
1.1 拉取提示超時,根據下面的博客解決
解決連接超時問題
2 查看鏡像是否拉取成功
sudo docker images
3 運行mysql鏡像,啟動實例/容器
sudo docker run --name mysql \
-e MYSQL_ROOT_PASSWORD=123456 \
-p 3306:3306 \
-d mysql:5.7 \
-v /mydata/mysql/conf:/etc/mysql \
-v /mydata/mysql/log:/var/log/mysql \
-v /mydata/mysql/data:/var/lib/mysql
?解讀:
-
mysql/log: 存儲MySQL日志
-
mysql/data: 是數據庫文件(庫表數據存放處)存放的地方。必須要掛載到容器外,否則容器重啟一切數據消失。
-
mysql/conf: mysql配置,mysql啟動時讀取配置
-
設置端口映射:外部訪問宿主機的端口3306,會將這個請求交給容器的3306端口處理,即可以讓外部訪問到容器
鏡像名稱組成: 鏡像名:鏡像的版本。如果沒有指定版本,默認是latest,代表最新的版本鏡像
查看docker啟動的容器執行情況(up狀態就是啟動成功)
# 查看啟動的容器進程
sudo docker ps
# 查看所有的容器
sudo docker ps -a
可以看到容器的狀態是啟動(up),創建時間33分鐘前,容器名稱mysql,linux的3306端口映射到了mysql的3306端口,所以之后連接linux的3306,相當于操作到了docker容器的mysql監聽的3306端口
3.1 docker啟動mysql失敗
? docker啟動mysql失敗
4 連接mysql
linux啟動linux安裝的mysql,使用
mysql -uroot -p
?4.1 navicat連接mysql失敗
? ?navicat連接mysql失敗
linux啟動docker安裝的mysql,使用
mysql -h 127.0.0.1 -P 3306 -u root -p
5 進入容器
mysql容器名
docker exec -it mysql /bin/bash
6 查看mysql容器的詳情
docker inspect mysql
三、docker安裝nginx
1 拉取nginx鏡像
docker pull nginx:1.20.2
2 創建并運行nginx容器
docker run -d --name nginx -p 80:80 nginx:1.20.2
-
-d
:后臺運行容器。 -
-p 80:80
:將容器的80端口映射到宿主機的80端口。 -
--name nginx
:為容器指定一個名稱,這里是nginx
。 -
nginx
:1.20.2:指定拉取的Nginx鏡像,如果在本地已經存在,就直接使用,如果不存在,就去鏡像倉庫拉取
出現下面的圖片就是成功
三 通用指令
1 將鏡像保存為文件,讓別人也能使用這個鏡像,以nginx為例
-o 將鏡像輸出為什么樣的文件,即將nginx:1.20.2的鏡像保存為nginx-1.20.2.tar的文件
docker save -o nginx-1.20.2.tar nginx:1.20.2
保存完之后通過xftp將linux的nginx文件下載下來,然后發送給別人,別人通過xftp上傳到宿主機上,然后使用指令解壓
-i 讀取哪一個文件
docker load -i nginx-1.20.2.tar
2? 啟動docker容器 docker start 容器名
# 啟動
docker start mysql
# 重啟
docker restart mysql
?3 關閉docker容器
docker stop mysql
?4 刪除容器,需要先停止容器
# 停止容器后
# 通過容器名刪除
docker rm 容器名
# 通過容器id刪除
docker rm 容器id
# 如果為停止容器,也可以使用下面的指令強制刪除
docker rm -f 容器名
5 刪除鏡像
# 通過鏡像名刪除
docker rmi 鏡像名:版本號
# 通過鏡像id刪除
docker rmi 鏡像id
6 查看鏡像
docker images
7 查看容器
docker ps