docker
一、環境和安裝
1、 docker安裝
- 使用 root 權限登錄 CentOS。確保 yum 包更新到最新
sudo yum update
- 卸載舊版本
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
- 安裝 Docker 所需依賴
yum -y install yum-utils device-mapper-persistent-data lvm2
- 指定 Docker 鏡像源,使用阿里云加速
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
- 安裝 Docker
sudo yum -y install docker-ce
2、安裝成功
1.驗證 Docker 是否安裝成功:查看安裝的版本號
docker -v
- 啟動 Docker
sudo systemctl start docker
- 設置開機啟動
sudo systemctl enable docker
- 測試鏡像
sudo docker run hello-world
3 、錯誤解決
錯誤1:更新 yum 報錯
備份倉庫配置文件:CentOS-Base.repo => CentOS-Base.repo.back
cp /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.back
修改倉庫配置文件,使用阿里云加速
sudo tee /etc/yum.repos.d/CentOS-Base.repo <<-'EOF'
[base]
name=CentOS-$releasever - Base
baseurl=http://mirrors.aliyun.com/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7[updates]
name=CentOS-$releasever - Updates
baseurl=http://mirrors.aliyun.com/centos/$releasever/updates/$basearch/
gpgcheck=1
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7[extras]
name=CentOS-$releasever - Extras
baseurl=http://mirrors.aliyun.com/centos/$releasever/extras/$basearch/
gpgcheck=1
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7EOF
錯誤2:yum-config-manager:找不到命令
這個是因為系統默認沒有安裝這個命令,這個命令在yum-utils 包里,可以通過命令yum -y install yum-utils 安裝就可以了。
yum -y install yum-utils
錯誤3:Error response from daemon: Get “https://registry-1.docker.io/v2/”(訪問失敗,需配置代理/鏡像加速)
通過修改 Docker 的配置文件 daemon.json 來配置鏡像加速器,可以加速 Docker 鏡像的拉取速度,尤其是在國內環境下。操作步驟如下:
編輯 /etc/docker/daemon.json 文件:
sudo tee /etc/docker/daemon.json <<-'EOF'
{"registry-mirrors": ["https://alzgoonw.mirror.aliyuncs.com","https://docker.m.daocloud.io","https://dockerhub.icu","https://docker.anyhub.us.kg","https://docker.1panel.live"]
}
重新加載 deamon.json 配置文件
sudo systemctl daemon-reload
重啟 Docker
sudo systemctl restart docker
通過 docker info 命令查看當前 Docker 配置,是否成功加載了鏡像加速器:(可能只輸出Registry Mirrors:,通過拉取鏡像測試)
sudo docker info | grep -i 'Registry Mirrors'
測試拉取鏡像
docker pull hello-world
二、docker常用命令
幫助命令
docker xxx --help
鏡像命令
docker images #列出所有鏡像
docker search mysql #查找mysql鏡像
docker pull mysql:5.7 #拉取mysql鏡像
docker rmi -f 鏡像 #刪除鏡像
容器命令
- 查看容器
docker ps #列出運行的鏡像
docker ps -aq #列出運行鏡像id
- 刪除容器
docker rm 容器id #刪除指定的容器,不能刪除正在運行的容器,如果要強制刪除 加-f
docker rm -f $(docker ps -aq) #刪除所有容器
docker ps -a -q|xargs docker rm #刪除所有的容器
- 啟動和停止容器
docker start 容器id #啟動容器
docker restart 容器id #重啟容器
docker stop 容器id #停止當前正在運行的容器
docker kill 容器id #強制停止當前容器
常用其他命令
后臺啟動容器
docker run -d -t 容器名
查看日志
docker logs -f -t --tail number 容器id
-tf #顯示日志
--tail number #顯示日志條數
查看容器中進程信息
docker top 鏡像id
查看鏡像元數據
docker inspect 鏡像id
進入當前正在進行的容器
# 方式一
docker exec -it 容器id /bin/bash
# 方式二
docker attach 容器id
從容器中拷貝文件
docker cp 容器id:目標主機目錄
三、容器數據卷
使用數據卷
方式一 使用-v 選項
docker run -it -v 主機目錄:容器目錄 容器
docker run -it -v /home/ceshi:/home/ centos /bin/bash-d 后臺運行
-e 環境配置
-v 配置掛載卷
-p 端口映射
--name 容器名字
docker run -d -p 3307:3306 -v /home/etc/conf:/etc/mysql/conf.d -v /home/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 --name mysql1 mysql:5.7
# 啟動mysql并掛載到主機目錄
# 使用sqlyog等數據庫工具連接時可能會出現連接失敗,可能是防火墻的原因,手動關閉防火墻試一下
systemctl stop firewalld
查看容器卷