docker的安装及使用
一、简介
docker是虚拟化技术,每一个docker容器都是一个linux虚拟机,而且还可以根据不同的应用定制,最小的可以直接依赖linux内核,仅仅几M就可以运行。
二、docker的安装、设置
- 如果docker版本比较老,可以卸载掉重装
1、卸载之前的docker包
yum list installed|grep docker
# 移除docker相关
yum remove docker-ce.x86_64
2、安装docker
# 安装必要的一些系统工具
yum install -y yum-utils device-mapper-persistent-data lvm2
# 添加软件源信息
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# 更新并安装Docker-ce
yum update -y && yum install -y docker-ce
# 创建docker目录
mkdir /etc/docker
# 配置daemon(配置 YUM 软件源)
cat > /etc/docker/daemon.json << EOF
{
"registry-mirrors": ["http://hub-mirror.c.163.com"],
"log-driver": "json-file",
"log-opts": {
"max-size": "100m"
}
}
EOF
#查看docker版本
docker --version
3、启动/停止docker
systemctl start/stop docker
4、重启docker
systemctl restart docker
5、设置开机启动/不启动docker
systemctl enable/disable docker
三、使用阿里云镜像源
- 上面使用的是网易的镜像源,如果无法下载镜像或速度慢,可以配置阿里云的镜像源
1、注册一个阿里云用户,访问 https://cr.console.aliyun.com/
2、获取专属Docker加速器地址,如下图
3、根据提示修改或添加/etc/docker/daemon.json文件
四、docker的使用
1、查找应用:docker search rabbitmq
2、拉取镜像:docker pull rabbitmq
3、查看镜像:docker images
4、删除镜像:docker rmi [IMAGE ID]
5、查看启动的容器:docker ps -a
6、启动docker:docker start [IMAGE]/[name]
7、停止docker:docker stop [IMAGE]/[name]
8、删除docker:docker rm [IMAGE]/[name]
9、查看日志:docker logs [name]
10、进入docker容器:docker exec -it [容器id或容器名] /bin/bash
11、退出容器到宿主机:exit
12、修改镜像名称:docker tag 原镜像名称 新镜像名称
13、docker inspect [容器id或容器名]
14、docker update
# 更新启动方式
docker update [容器名] --restart=no/on-failure/always
# 更新容器分配内存
docker update [容器名] -m 3g --memory-swap -1
docker run -e TZ="Asia/Shanghai" -p 8090:8090 -d --name ch ch/ch
15、docker登录
docker login -uadmin -pHarbor12345 192.168.3.12:6007
16、docker退出
docker logout 192.168.3.12:6007
17、docker创建和启动
docker run \
-d \
--name rabbitmq \
-p 5672:5672 \
-p 15672:15672 \
-m 2g \
--memory-swap -1 \
-v $(pwd)/data:/var/lib/rabbitmq \
--hostname myRabbit \
-e RABBITMQ_DEFAULT_VHOST=my_vhost \
-e RABBITMQ_DEFAULT_USER=admin \
-e RABBITMQ_DEFAULT_PASS=admin \
[IMAGE ID]
$(pwd)是docker支持的指定当前目录的方法
-d:后台运行容器
--name:指定容器名
-p:端口映射。(运行之后必须与机器的端口进行映射,否则访问不到)
-v:映射目录或文件,本地目录:容器目录
--hostname:主机名(RabbitMQ的一个重要注意事项是它根据所谓的 “节点名称” 存储数据,默认为主机名)
-e:指定环境变量。(RABBITMQ_DEFAULT_VHOST:默认虚拟机名;RBBITQ_DEFAULT_USER:默认的用户名;RABBITMQ_DEFAULT_PASS:认用户名密码)
--restart=always 容器重启策略(重启docker时,自动启动相关容器)
--privileged=true,以特权方式启动容器,解决报错问题(Permission denied)
- --restart
- no,默认策略,在容器退出时不重启容器
- on-failure,在容器非正常退出时(退出状态非0),才会重启容器
- on-failure:3,在容器非正常退出时重启容器,最多重启3次
- always,在容器退出时总是重启容器
- unless-stopped,在容器退出时总是重启容器,但是不考虑在Docker守护进程启动时就已经停止了的容器
18、镜像推送到harbor
- SOURCE_IMAGE 原来的镜像名称
- REPOSITORY 现在的镜像名称
# 镜像下载
docker pull nginx:1.21.3
# 在项目中标记镜像
docker tag SOURCE_IMAGE[:TAG] 192.168.3.12:6007/test/REPOSITORY[:TAG]
docker tag nginx:1.21.3 192.168.3.12:6007/test/nginx:v1.21.9
# 推送镜像到harbor
docker push 192.168.3.12:6007/test/REPOSITORY[:TAG]
docker push 192.168.3.12:6001/test/nginx:v1.21.9