目录

  • 前言
  • 环境
  • 官方文档
  • 安装Docker
  • 安装步骤
  • Docker自启动
  • 镜像设置
  • Docker 仓库
  • Docker常用命令
  • Docker安装Mysql
  • Docker安装Redis
  • 自定义Docker镜像提交
  • 提交容器镜像
  • 游离镜像
  • 转存Docker容器镜像
  • 转存容器
  • 转存镜像
  • 推送Docker镜像到云仓库
  • Docker可视化界面

前言

记录下Linuxdocker的安装与使用


环境

Centos 7 + Docker 23.0.1

官方文档

https://docs.docker.com/engine/install/centos


安装Docker

安装步骤

  • 移除老版本
sudo yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine

Docker的安装与使用_docker

  • 安装utils工具包
sudo yum install -y yum-utils

Docker的安装与使用_Docker_02

  • 设置docker远程库
sudo yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo

Docker的安装与使用_Docker_03

  • 安装docker
sudo yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

Docker的安装与使用_redis_04

Docker的安装与使用_redis_05

Docker的安装与使用_Docker_06

  • 运行docker
sudo systemctl start docker

Docker的安装与使用_Docker_07

  • 查看docker版本
docker -v

Docker的安装与使用_redis_08

  • 查看镜像列表
docker images

Docker的安装与使用_redis_09


Docker自启动

  • 设置docker自启动
systemctl enable docker

Docker的安装与使用_redis_10

  • 重启docker
systemctl restart docker

Docker的安装与使用_docker_11


镜像设置

  • 阿里云 -》 容器镜像服务 -》 镜像工具 -》 镜像加速器
    https://cr.console.aliyun.com/cn-zhangjiakou/instances/mirrors
  • 配置镜像加速器
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://kc83wno8.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

Docker的安装与使用_Docker_12


Docker 仓库

  • Docker仓库地址
https://hub.docker.com/


Docker常用命令

  • Docker常用命令参考


Docker安装Mysql

  • Docker - 安装Mysql


Docker安装Redis

  • Docker - 安装Redis


自定义Docker镜像提交

提交容器镜像

  • 查看某个容器发生的改变
docker diff redis
  • 释义
  • A: 添加的文件或目录(ADD
  • D:删除的文件或目录(DELETE)
  • C:更改的文件或目录(CHANGE)

Docker的安装与使用_redis_13

  • 停止redis
docker stop redis

Docker的安装与使用_redis_14

  • 提交容器镜像的变更
docker commit -a coisini -m "init new another redis" redis redis:myRedis

// 释义
-a: 作者信息
-c: 可以使用dockerfile提交
-m: 提交的备注信息
-p: 提交的时候暂停容器

Docker的安装与使用_redis_15


游离镜像

  • 游离镜像
    再次执行上一个commit操作,当前的提交会覆盖上一个镜像,上一个提交的commit会变成none(无用镜像)

Docker的安装与使用_Docker_16

  • 游离镜像删除
docker image prune

Docker的安装与使用_redis_17

  • 更改tag标签(两个镜像的id是一样的,只是对镜像做了标记处理不占硬盘空间)
docker tag redis:myRedis redis:myRedis-1.0

Docker的安装与使用_Docker_18

  • 运行新镜像测试
docker run -p 8379:6379 --name redis-1.0 -d redis:myRedis-1.0

Docker的安装与使用_Docker_19

  • 测试连接

Docker的安装与使用_docker_20



转存Docker容器镜像

转存容器

  • 导出容器为tar文件
docker export -o myRedis.tar myRedis

Docker的安装与使用_Docker_21

  • 拷贝到其他服务器
scp /home/redis6/myRedis.tar root@192.168.227.128:/home/redis6/

Docker的安装与使用_Docker_22


Docker的安装与使用_docker_23

  • 导入tar文件为镜像
docker import myRedis.tar redis:myRedis

Docker的安装与使用_redis_24

  • 启动导入镜像(启动报错),运行导入的镜像须带上command参数

Docker的安装与使用_docker_25

  • 查看原容器command参数, docker ps查看到的是缩略的,通过下面的命令查看查看完整的command
docker ps --no-trunc

Docker的安装与使用_Docker_26

  • 启动导入镜像
  • 可以启动成功,但无法连接,目前未找到解决方式,待完善...
docker run -p 6379:6379 --name redis -d redis:myRedis docker-entrypoint.sh redis-server /etc/redis/redis.conf

Docker的安装与使用_Docker_27


转存镜像

  • 保存一个或多个镜像为tar文件
docker save -o myRedis.tar redis[:tag]

Docker的安装与使用_Docker_28

  • 拷贝到其他服务器
scp /home/redis6/myRedis.tar root@192.168.227.128:/home/redis6/
  • 加载镜像
docker load -i myRedis.tar

Docker的安装与使用_docker_29

  • 启动镜像
docker run -p 6379:6379 --name myRedis -d redis:myRedis

Docker的安装与使用_Docker_30

  • 测试连接

Docker的安装与使用_docker_31



推送Docker镜像到云仓库

Docker的安装与使用_Docker_32

  • 登录docker hub
docker login

Docker的安装与使用_docker_33

  • 使本地的tag和远程仓库的保持一致
docker tag redis:myRedis maggieq/redis:myRedis

Docker的安装与使用_redis_34

  • 推送Docker镜像到云仓库
docker push maggieq/redis:myRedis

Docker的安装与使用_redis_35


Docker的安装与使用_redis_36

  • 退出docker hub
docker logout
  • 适用场景
save/load 适用于离线的生产模式
push 适用于线上环境、云模式


Docker可视化界面

  • Portainer是一个轻量级的管理UI,它由一个可以在任何Docker引擎上运行的单一容器组成(可以部署为Linux容器或Windows本地容器,也支持其他平台),Portainer可以管理所有的Docker资源(容器、镜像、卷、网络等等),它与独立的Docker引擎和Docker Swarm模式兼容

Docker的安装与使用_redis_37


  • 拉取portainer镜像
docker pull portainer/portainer-ce

Docker的安装与使用_redis_38

  • 创建数据卷
docker volume create portainer_data

Docker的安装与使用_docker_39

  • 运行容器
docker run -p 8000:8000 -p 9000:9000 \
--name=portainer \
--restart=always \
-v /var/run/docker.sock:/var/run/docker.sock \
-v portainer_data:/data \
-d portainer/portainer-ce

Docker的安装与使用_docker_40

  • 访问:http://[docker所在服务ip]:9000

Docker的安装与使用_Docker_41

  • 设置用户和密码后进入

Docker的安装与使用_Docker_42

Docker的安装与使用_Docker_43

Docker的安装与使用_Docker_44


- End -- 个人学习笔记 -- 仅供参考 -


以上为本篇文章的主要内容,希望大家多提意见,如果喜欢记得点个推荐哦

作者:Maggieq8324