Docker 急速入门
1. 概述
之前聊了很多 SpringCloud 相关的话题,今天我们来聊聊服务容器 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 错误解决
如果在执行 docker run hello-world 时,报如下错误:
docker setup user: permission denied: unknown
关闭 Selinux 即可解决。
# vim /etc/sysconfig/selinux
SELINUX=enforcing 改为 SELINUX=disabled
重启服务器
3. Docker 的常用命令
3.1 查看容器
# 查看正在运行的容器
docker ps
# 查看所有容器
docker ps -a
3.2 查看所有镜像
docker images
3.3 运行容器
docker run -d --name 容器名 -p 宿主机端口:容器端口 -e 附加参数 容器tag名称:版本号
-d 代表后台运行
--name 是给容器起的名称
-p 是端口映射,可写多个,冒号前面的是宿主机的端口,冒号后面的是容器内服务的端口
-e 后面是一些容器自定义的附加参数
具体容器的运行方法可参考 Docker Hub 官网: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 代表限制的最大内存
--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 相关的知识 ,希望可以对大家的工作有所帮助。
欢迎帮忙点赞、评论、转发、加关注 :)
关注追风人聊Java,每天更新Java干货。
5. 个人公众号
追风人聊Java,欢迎大家关注