1. 概述
之前聊了很多 SpringCloud 相關(guān)的話題赘理,今天我們來聊聊服務(wù)容器 Docker。
2. 在 CentOS7 安裝 Docker
2.1 卸載舊版本的Docker
# yum remove docker
docker-client
docker-client-latest
docker-common
docker-latest
docker-latest-logrotate
docker-logrotate
docker-engine
2.2 安裝倉庫
# yum install -y yum-utils
# yum-config-manager
--add-repo
https://download.docker.com/linux/centos/docker-ce.repo
2.3 安裝 Docker
yum install docker-ce docker-ce-cli containerd.io
2.4 修改 Docker 配置
# cat > /etc/docker/daemon.json <<EOF
{
"exec-opts": ["native.cgroupdriver=systemd"],
"log-driver": "json-file",
"log-opts": {
"max-size": "100m"
},
"storage-driver": "overlay2",
"storage-opts": [
"overlay2.override_kernel_check=true"
],
"data-root": "/data/docker"
}
EOF
2.5 啟動 Docker
# systemctl start docker
2.6 驗證 Docker
# docker run hello-world
2.7 docker setup user: permission denied: unknown 錯誤解決
如果在執(zhí)行 docker run hello-world 時险绘,報如下錯誤:
docker setup user: permission denied: unknown
關(guān)閉 Selinux 即可解決踢京。
# vim /etc/sysconfig/selinux
SELINUX=enforcing 改為 SELINUX=disabled
重啟服務(wù)器
3. Docker 的常用命令
3.1 查看容器
# 查看正在運行的容器
docker ps
# 查看所有容器
docker ps -a
3.2 查看所有鏡像
docker images
3.3 運行容器
docker run -d --name 容器名 -p 宿主機端口:容器端口 -e 附加參數(shù) 容器tag名稱:版本號
-d 代表后臺運行
--name 是給容器起的名稱
-p 是端口映射,可寫多個宦棺,冒號前面的是宿主機的端口瓣距,冒號后面的是容器內(nèi)服務(wù)的端口
-e 后面是一些容器自定義的附加參數(shù)
具體容器的運行方法可參考 Docker Hub 官網(wǎng):https://hub.docker.com/
例如:
運行 RabbitMQ 例子
docker run -d --name myrabbitmq -p 5672:5672 -p 15672:15672 rabbitmq:management
運行 Redis 例子
docker run -d -p 6379:6379 --name myredis redis:3.2 redis-server
運行 mysql 例子
docker run -d -p 3306:3306 --name mymysql -e MYSQL_ROOT_PASSWORD=123456 mysql
3.4 運行容器并對容器資源進行限制
docker run -d -c 4000 -m 200M --bikio-weight 300 nginx
-c 代表分配的 CPU 份額
-m 代表限制的最大內(nèi)存
--bikio-weight 代表分配的 io 份額
3.5 目錄映射
docker run --name myfront -p 8080:80 -v /root/foodie-cloud/foodie-shop:/usr/share/nginx/html -d nginx
-v 代表將容器的目錄映射到宿主機,冒號前面是宿主機的路徑代咸,冒號后面是容器的路徑
3.6 查看容器日志
docker logs -f 容器名/容器ID
-f 代表實時刷新日志
3.7 進入容器操作
docker exec -it 容器名/容器ID /bin/bash
-it 是交互的意思
3.8 拷貝文件/文件夾到容器
docker cp 宿主機文件/文件夾 容器名:容器目錄
3.9 刪除容器
docker rm 容器ID
3.10 刪除鏡像
docker rmi 鏡像ID
3.11 啟動蹈丸、停止、重啟容器
docker start 容器名
docker stop 容器名
docker restart 容器名
3.12 啟動呐芥、停止 Docker
systemctl start docker
systemctl stop docker
systemctl restart docker
3.13 Docker開機啟動
chkconfig docker on
4. 綜述
今天聊了一下 Docker 相關(guān)的知識 逻杖,希望可以對大家的工作有所幫助。
歡迎幫忙點贊思瘟、評論荸百、轉(zhuǎn)發(fā)、加關(guān)注 :)
關(guān)注追風(fēng)人聊Java滨攻,每天更新Java干貨管搪。