Docker知识点整理

docker命令

检查内核

uname-r

更新最新的包管理

sudo yum upade

卸载旧版本

sudo remove docker docker-common docker-selinux docker-engine

加载 Device Mapper 模块

modprode dm-mod

验证 Device Mapper 安装

ls -l /sys/class/misc/device-mapper

安装docker-Io

yum -y install docker-io

启动服务器

service docker start

设置开机启动

systemctl enable docker.service

查看docker信息

docker info

查看docker版本

docker version 或 docker -v

docker daemon 是否激活

systemctl status docker.service

配置docker daemon 可在不只在主机上能访问

cd /usr/lib/systemd/system

vim docker.service

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FlxUXWnY-1586577864418)(http://note.youdao.com/yws/res/4284/WEBRESOURCE5d7c74f423332ecc86cf3ec672487281)]

然后重启docker daemon

systemctl daemon-reload

systemctl restart docker.service

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Hs447weK-1586577864420)(http://note.youdao.com/yws/res/4290/WEBRESOURCEc58f712b1c8972ed7a88d029ee90b31d)]

查看centos系统的网络接口

netstat -tulp

查看连接到服务器的信息

docker -H 192.168.178.169

镜像指令

配置镜像源

vim /etc/docker/daemon.json

添加如下内容
{
	“registry-mirrors”:["http://hub-mirror.c.163.com"]
}

然后  重新载入systemd,扫描新建和改变的单元
sudo systemctl deamon-reload

重新启动docker服务
sudo service docker restart

下载镜像

docker pull hello-world
docker pull ubuntu

查看所有镜像

docker images
docker images hello-world   // 查看指定镜像

运行镜像(应该叫创建容器)

docker run hello-world

创建新镜像

使用commit
//在容器内创建一个新镜像
docker run -it ubuntu // 进入到ubuntu容器内  容器是镜像的实例化
docker commit 86b007dc3533 07cxy:v1
	// 86b007dc3533 是容器的ID
	// 07cxy:v1 是要新创建的镜像名字
容器的ID可通过运行容器 然后docker ps 拿到

docker commit -a "cxy" -m "a test" a404c6c174a2  mymysql:v1 
-a :提交的镜像作者;
-c :使用Dockerfile指令来创建镜像;
-m :提交时的说明文字;
-p :在commit时,将容器暂停。
使用build
// 要在那个dockerfile文件的目录中
docker build -t dockertest_mysql

删除镜像

删除没有容器的镜像
docker rmi 镜像ID
删除所有没有容器的镜像
docker rmi $(docker images-q)
强制删除所有容器后再删除所有镜像
docker rm -f $(docker ps -aq) & docker rmi $(docker images -q)
删除当前镜像下的所有容器
docker rm $(docker ps -a | grep ubuntu)

容器指令

查看所有容器

docker ps -a   // 查看当前系统环境下, 所有的容器(包括停止的容器)
docker ps -aq  // 查看当前系统环境下, 所有的容器(包括停止的容器)的ID

创建容器

docker run hello-world  // 简单创建
docker run -d -p 33063306 镜像名字/ID
	/* 
		-d 后台运行容器,并返回容器ID。
		-p 随机端口映射,容器内部端口随机映射到主机的高端口
	*/

启动容器

docker start 已经停止容器的ID/名字

重启容器

docker restart 正在运行容器的ID/名字

停止容器

docker stop 正在运行容器的ID/名字------停止容

删除容器

docker rm 已经停止的容器的ID/名字
docker rm $(docker ps -aq)  // 删除所有已经停止运行的容器

// 删除并停用所有的容器(包括停止和运行)
docker stop $(docker ps -q) & docker rm -f $(docker ps -aq) 

进入容器

进入前要先启动容器

然后:	docker exec -it 容器ID/名字 bash

在这里插入图片描述

远程仓库

登录账号
docker login
登出账号
docker logout
标记本地镜像,归入Docker账号用户名的仓库
docker tag nginx:v1 qddscxy/nginx:v1

// 然后查看下镜像: 如下图

在这里插入图片描述

推送镜像
docker push qddscxy/nginx:v1

在这里插入图片描述

在Docker Hub上查看镜像上传结果

在这里插入图片描述

换源,配置及使用Docker加速器

这里以CentOS系统为例。

curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://f361db2.m.daocloud.io
该脚本可以将 --registry-mirror 加入到你的Docker配置文件/etc/docker/daemon.json中。
适用于 Ubuntu14.04、Debian、CentOS6 、CentOS7、Fedora、Arch Linux、openSUSE Leap 42.1,其他版本可能有细微不同。

在这里插入图片描述

记得systemctl restart docker

检查换源结果,我们进入到/etc/docker路径,查看一下daemon.json,发现本机Docker的镜像地址已经修改。

在这里插入图片描述

拉取镜像
docker pull qddscxy/nginx:v1

因为本地存在了,所以他更新了

在这里插入图片描述

查看下应该是这玩意

在这里插入图片描述

使用docker run命令运行下载的镜像,运行的结果和本地上传的镜像运行结果相同。

在这里插入图片描述

数据卷

数据卷是Docker主机文件系统中的目录或文件,能够直接被挂到容器的文件系统中。

数据卷的特点:

​ 1、数据卷是目录或文件,不是没有格式化的磁盘。

​ 2、容器可以读写数据卷中的数据。

​ 3、数据卷数据可以被永久的保存,即使使用它的容器已经销毁。

创建一个数据卷

docker volume create AtestVolume

在这里插入图片描述

查看数据卷

docker volume list

在这里插入图片描述

查看卷的详细信息

docker inspect AtestVolume

在这里插入图片描述

删除卷

docker volume rm  AtestVolume

在这里插入图片描述

数据卷容器

数据卷容器是专门为其他容器提供数据卷的容器。它提供的卷可以是绑定装载的卷,也可以是Docker管理卷。

​ Docker管理卷与绑定装载的区别就是不需要指定绑定源,只需要指定绑定点就可以。

例如:想要创建多个centos容器,并且希望这些容器之间共享数据,可以先创建一个数据卷容器,该容器中并不运行任何应用。

创建一个带有映射数据过去数据卷的容器

docker run -it -v /06ke:/data --privileged=true centos bash

注意:	/06ke 是本地文件目录
	  /data 是存在数据卷的文件夹
	  --privileged=true  进入data目录就拥有读写权限。
	  centos  centos系统
	  ro选项,来指定挂载时文件权限是只读的。
	  	# docker run -it -v /06ke:/data:ro --privileged=true centos bash
	  
	  
同样我们可以在Dockefile中,使用 VOLUME 指令来创建添加一个或多个数据卷。
示例:

在这里插入图片描述

创建一个数据卷容器

docker run -it -v/data --name a_test_rongqi centos

在这里插入图片描述

查询创建容器的信息

docker inspect a_test_rongqi centos

在这里插入图片描述

将一个容器中的数据卷与其他n个容器的数据卷共享

​ --volumes-from 把多个容器中的多个数据卷放到一起。

之前创建一个有一个数据卷的容器

docker run -it -v/data --name a_test_rongqi centos

创建一个名为data01的容器

在这里插入图片描述

创建一个名为data02的容器

在这里插入图片描述

测试下

在这里插入图片描述

彻底删除数据卷容器中的被其他容器所共享的数据卷

​ 1.删除所有使用共享数据卷的容器

docker ps 查看下
然后docker rm -f 容器ID

​ 2.列出所有不被引用的数据卷。

docker volume  ls  -f dangling=true

​ 3.使用docker volume rm命令,删除数据卷容器中共享的数据卷

docker volume rm 容器ID 

数据备份与恢复

可以使用如下命令将数据卷中的数据打包,并将打包后的文件拷贝到主机当前目录中,我们使用–volumes-from 参数来创建一个挂载了要备份数据卷的容器。

[root@centos-7 zxc]# docker run --volumes-from data_provider -v $(pwd):/backup --name backup_worker1 --privileged=true centos tar -cvPf /backup/backup.tar /data


docker网络

docker network ls

在这里插入图片描述

Docker原生网络介绍

none网络

设置容器为none网络

docker run --network=none --device /dev/snd docker.io/zhaoxc/music-java
host网络
bridge网络

查看Docker安装后,自动在主机创建的三个网络。

docker network ls 

在这里插入图片描述

设置Docker容器网络为none网络

创建容器时,使用 --network=none 参数,设置Docker容器网络为none网络。 none网络为隔离网络,一般对安全性高并且不需要联网的应用可使用,比如随机产生密码的容器。

docker run -it --network=none --device /dev/snd music-java:v1

设置Docker容器网络为host网络

使用 --network=host 参数,设置Docker容器网络为host网络。

docker run -it --network=host --device /dev/snd/ music-centos:v1

host网络和主机网络一样

自定义网络

在这里插入图片描述

在这里插入图片描述

Compose命令

注意:大部分的 compose 命令都需要到 docker-compose.yml 文件所在的目录下才能执行。

使用docker-compose up命令来构建并启动容器。

如果Compose要以守护进程模式运行,需要使用-d参数。

1.创建一个work文件夹

在这里插入图片描述

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值