首页 > 其他分享 >Docker 基础知识

Docker 基础知识

时间:2023-01-20 20:11:14浏览次数:64  
标签:容器 -- 基础知识 path 镜像 Docker docker

一、名词说明

Dockerfile 镜像构建文件
Images 镜像;生成容器
Containers 容器;微型系统
Volumes 卷;存放容器运行数据
Networks docker 自有网络管理
Docker Compose 编排服务;多个或一组相关联的 docker 服务管理
Docker Machine docker 管理工具客户端
Docker Swarm docker 服务集群管理工具

二、Linux 环境环境

2.1 卸载原有安装包

dnf remove docker \
    docker-client \
    docker-client-latest \
    docker-common \
    docker-latest \
    docker-latest-logrotate \
    docker-logrotate \
    docker-engine \
    podman \
    runc

2.2 系统新增 Docker Repo

dnf install -y yum-utils
# 系统追加 Docker 镜像源
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
# 变更为国内<南京大学>镜像源
# 参考:http://mirrors.nju.edu.cn/help/docker-ce
sed -i 's+download.docker.com+mirror.nju.edu.cn/docker-ce+' /etc/yum.repos.d/docker-ce.repo

2.3 安装 Docker

# 安装引擎
dnf install docker-ce docker-ce-cli containerd.io docker-compose-plugin
# 要安装特定版本的 Docker 引擎,在存储库中列出可用版本,选择并安装:
# 列出存储库中可用的版本并对其进行排序,按版本号排序
dnf list docker-ce --showduplicates | sort -r
# 安装特定版本
dnf install docker-ce-{version} docker-ce-cli-{version} containerd.io docker-compose-plugin
# 自定义docker网卡地址(避免于宿主机网段冲突,导致无法上网)
echo '{"bip":"172.17.0.1/16"}' > /etc/docker/daemon.json
# 启动 docker 服务
systemctl start docker
# 开机自启动
systemctl enable docker
systemctl enable containerd

2.4 配置国内Hub

参考<南京大学>镜像站:http://mirrors.nju.edu.cn/help/docker-hub

# 这里配置为<南京大学>镜像站
# 注意:已存在得 daemon.json 不可覆盖
echo '{"registry-mirrors": ["https://docker.nju.edu.cn/"]}' > /etc/docker/daemon.json
# 重启服务生效
systemctl restart docker
# 验证Hub变更效果(Registry Mirrors 的值,倒数第二行)
docker info

2.5 卸载 Docker

# 卸载 Docker-Engine、CLI、Containerd、Docker-Compose 软件包
dnf remove docker-ce docker-ce-cli containerd.io docker-compose-plugin
# 主机上的映像、容器、卷或自定义配置文件 不会自动删除;删除所有映像、容器、卷
rm -rf /var/lib/docker
rm -rf /var/lib/containerd

三、常用命令

Docker 命令大全参考:https://www.runoob.com/docker/docker-command-manual.html

3.1 基础命令

# 显示已有的对象列表
docker image/container/volume/network ls
# 删除对象
docker image/container/volume/network rm
# 清理无用的未启动的对象
docker image/container/volume/network prune
# 卷管理:创建、详情、列表、清理、删除
docker volume create|inspect|ls|prune|rm
# 网络管理:连接、创建、断开、详情、列表、清理、删除
docker network connect|create|disconnect|inspect|ls|prune|rm
# docker system:docker本身
# df:磁盘使用情况
# info:docker 服务详细信息
# prune:清理 停掉的容器|无用的网络|无效的镜像|无效的缓存
# --volumes:清理 无用的卷(容器运行的数据)
docker system df/info/prune --volumes

3.2 Image

# 镜像 删除、查询、下载、推送、运行容器
docker rmi/search/pull/push/run {image}
# 创建镜像
docker build -t {HubID}/{repo-name}:{tag} {dockerfile-path}
# 拉取镜像
docker pull {HubID}/{repo-name}:{tag}
# 推送镜像
docker push {HubID}/{repo-name}:{tag}
# 打包镜像
docker save {镜像名} --output {path/filename}.tar
docker save {镜像名} > {path/filename}.tar
docker save {镜像名} | gzip > {path/filename}.tar.gz
# 解压镜像到存储库
docker load --input {path/filename}.tar
docker load < {path/filename}.tar
docker load < {path/filename}.tar.gz
# 查看全部镜像列表
docker images -a
# 查看过滤后的镜像列表(无效的)
docker images --filter dangling=true
# 删除镜像 remove images
docker rmi {hub_id}/{repo-name}:{tag}

3.3 Container

# 用镜像生成一个容器运行
# -dit:后台运行容器,附带可交互式的终端(供随时进入容器内)
# --name:容器名称
# --restart:容器自动运行,除非手动停止
# -p:主机与容器的端口绑定 {local}:{container}
# -e:环境变量
#    1、系统环境变量:容器本身是一个简化过的Linux微系统,如系统默认字符集 LANG=C.utf8
#    2、应用环境变量:容器内应用自定义的环境变量,如:MYSQL_ROOT_PASSWORD 初始密码
# -v:卷绑定;应用主机文件(同步);{容器文件}:{主机文件}
docker run -dit --name {容器名称} --restart unless-stopped -p {lPort}:{cPort} \
        -e LANG=C.utf8 -v /etc/localtime:/etc/localtime {镜像名}
#/ MySQL Case:
# -c:cpu可核心数、-m 内存可使用的容量(BKMG)、--name:容器名称,--restart:自启动
# -p:端口绑定,-e:环境变量(默认字符集,初始密码,创建库),-v:与主机设定相同时区
docker run -dit -c 4 -m 6G --name mysql.t.index --restart unless-stopped \
    -p 3306:3306 \
    -e LANG=C.utf8 \
    -e MYSQL_ROOT_PASSWORD=sa. \
    -e MYSQL_DATABASE=testdb \
    -v /etc/localtime:/etc/localtime \
    mysql
# 进入容器
# -it:用终端进入
# -e:配置环境变量
docker exec -it -e LANG=C.utf8 {容器名} bash
# 容器其它操作项
# commit:当前容器现状生成 new image
# cp:拷贝; 容器到主机 {容器Id}:{Path} {LocalPath},主机到容器 {LocalPath} {容器Id}:{Path}
# start|restart|rename|pause|unpause|stop|rm:启动,重启,重命名,暂停,恢复,停止,删除
# inspect|stats|top|port|kill|logs:描述,时时资源使用情况,进程状况,用到的端口,杀死,日志
docker commit|cp|start|restart|rename|pause|unpause|stop|rm|stats|top|port|kill|logs {容器}
# 修改容器属性
docker update --restart {新值}
# 当前容器生成新镜像
docker commit {容器} {新镜像名称}
# 拷贝容器内文件 到主机目录
docker cp {容器}:{path} {local_path}
# 拷贝主机文件 到容器内目录
docker cp {local_path} {container}:{path}
# 时时日志 -f
docker logs --follow {container}
# 最新日志 -n
docker logs --tail={行数} {container}
# 指定日期时间之前
docker logs --until={时间} {container}
# 指定日期时间之后
docker logs --since={时间} {container}
# 容器内文件变更情况
docker diff {container}
# 硬件资源时时使用情况
# --no-stream:仅打印出当前一次
docker stats [--no-stream] {container}

3.4 Repository

# 登录/登出 Registry
docker login/logout
# 搜索仓库中的镜像
docker search [username/]{image}
# 镜像下载到本地
docker pull {image}[:{tag}]
# 镜像推送到仓库
docker push {username}/{image}[:{tag}]
# 本地镜像标记成指定仓库的镜像
docker tag {source_image}[:{tag}] [{hub_id}/][{username}/]{target_image}[:{tag}]

四、服务管理

4.1 Compose

# 编排服务管理

4.2 Machine

# 客户端工具

4.3 Swarm

# 集群管理工具

 

标签:容器,--,基础知识,path,镜像,Docker,docker
From: https://www.cnblogs.com/Sol-wang/p/17063192.html

相关文章

  • centos修改docker默认存储位置
    docker默认存储路径在/var/lib/docker下[root@node01system]#dockerinfo|grep-idirDockerRootDir:/var/lib/docker修改默认路径:修改docker的systemd的配置......
  • Ubuntu 完全卸载 docker
    删除docker及安装时自动安装的所有包apt-getautoremovedockerdocker-cedocker-enginedocker.iocontainerdrunc-y查看docker是否卸载干净dpkg-l|grepdockerdp......
  • linux docker存储空间迁移
    1.查看docker镜像存放目录空间大小du-hs/var/lib/docker/2.停止docker服务。systemctlstopdocker3.查看磁盘容量大的空间,且在上面创建新的docker目录。df-......
  • 【直播/实时监控】前端-直播实时监控基础知识点
    了解直播/实时监控需要掌握的背景知识......
  • 基于docker搭建redis集群
    在docker已安装完毕的情况下,拉取redis镜像#这里拉取最新的redis镜像。当然也可以拉取指定版本的镜像dockerpullredis:5.0dockerpullredis创建redis容器#命令如下......
  • docker运行pm2程序
    DockerfileFROMnode:16.14.2RUNmkdir/data/apps-pv\&&[email protected]\&&npm-gipm2WORKDIR/data/appsCOPY..RUNpnpminstall\......
  • 制作docker php5.6的镜像
     dockerpullcentosDockerrun-it--name="centos-test"centosyuminstallwget #报错在后面有处理的方法 https://lnmp.org/ lnmp环境安装wgethttp://so......
  • SAP基础知识
    1.数据库表DatabaseTable-透明表(TransparentTable):在数据库中有对应的物理表.在SAP中代表一个与数据库表对映的表对象.-存储表(PooledTable):负责存储程序中界面逻辑控......
  • RabbitMQ在docker下安装启动说明
    RabbitMQ在docker下安装启动说明1.RabbitMQ消息服务器安装1.把rabbitmq-3.6.6-management.tar包放到指定的路径下面,如图所示    2.用docker指令把rabbitmq注册为......
  • 一台云主机怎么搭建Kafka集群?[基于Docker]
    前提:首先服务器内存,建议在4G以上。安装docker、docker-compose服务器执行curlcip.cc查看公网IPdocker-compose一键运行yml将下面的内容中的[yourserverip]—......