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

五、相关资料

posted @ 2021-08-25 09:36  吕林光  阅读(471)  评论(0编辑  收藏  举报