首页 > 其他分享 >docker 必会基础知识

docker 必会基础知识

时间:2023-03-25 15:22:24浏览次数:41  
标签:容器 network 基础知识 网桥 必会 镜像 docker ID

Docker知识汇总

docker安装

安装地址
windows:https://desktop.docker.com/win/stable/amd64/Docker%20Desktop%20Installer.exe?utm_source=docker&utm_medium=webreferral&utm_campaign=dd-smartbutton&utm_location=header

MAC:https://desktop.docker.com/mac/stable/amd64/Docker.dmg

Linux:https://docs.docker.com/engine/install/centos/
在CentOS中安装docker
1、删除老版本的Dockers残留
[root@python ~]# yum remove docker \
    docker-client \
    docker-client-latest \
    docker-common \
    docker-latest \
    docker-latest-logrotate \
    docker-logrotate \
    docker-engine

2、更换源
[root@python ~]# cp /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak
[root@python ~]# curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo

3、建立yum源缓存
yum makecache

4、更新操作系统
[root@python ~]# yum update -y --exclud=kernel*

5、安装基础软件
[root@localhost ~]# yum install -y yum-utils device-mapper-persistent-data lvm2

6、安装docker yum源
[root@localhost ~]# yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

7、安装docker
[root@localhost ~]# yum makecache fast
[root@localhost ~]# yum -y install docker-ce

8、启动Docker
[root@localhost ~]# systemctl start docker

9、验证Docker
[root@localhost ~]# docker run -p 8080:80 -d nginx
注:测试能够通过8080访问我们的服务器就算成功

Docker镜像

获取镜像
1.下载镜像格式:
	docker pull  [仓库的URL]/[名称空间]/[仓库的名称]:[版本号]
eg:
docker pull nginx:1.17
或者:
docker pull registry.cn-hangzhou.aliyuncs.com/alvinos/docsfiy:v2
  
镜像仓库URL:registry.cn-hangzhou.aliyuncs.com(默认:docker.io)
名空间:alvinos(默认:library)
仓库名称:docsfiy
版本号:v2(默认:latest)

2.获取当前系统上所有的docker镜像
	docker image ls 或者docker images
		-a : 列出系统中所有的临时镜像
		--digests=true : 列出系统中所有镜像的数字摘要值
		-q : 仅显示镜像ID
3.上传镜像
	1.创建阿里云仓库
	2.登陆阿里云仓库
		docker login [仓库url]
	3.修改镜像名称
		docker tag [旧镜像tag] [新镜像tag]
	4.上传镜像
		docker push [镜像tag]
4.查看镜像详细信息
	docker inspect [镜像名称|ID]
		-f : 获取镜像部分详细信息
5.删除镜像
	docker rmi [镜像ID|镜像名称]
		-f :强制删除镜像
##清空机器上所有镜像
	docker rmi $(docker images -q)
6.镜像导入导出
	save和load
	格式:
		导入:
			docker save -o [打包文件名] [镜像名称及版本号]
		导出:
			docker load < [打包的文件名]

Docker容器

容器(container)

1.运行一个容器
	格式:
	docker run [参数] [镜像名称|ID] [启动容器执行的命令]
	## docker create +docker start = docker run
		启动命令:不指定则执行默认的启动命令,指定则执行指定的命令。
		镜像名称|ID:可以使用镜像名称,也可以使用镜像ID
		参数:	
            -d : 以守护进程方式运行
            -p : (固定)端口映射
            -P : (随机)端口映射
            -i : 打开标准输出
            -t : 创建一个终端
            -v : 将宿主主机上的目录映射到容器中
            --rm : 当容器的生命周期结束时立即删除容器
            --name : 将容器自定义一个容器名称, 将容器的名称加入DNS解析
            -e : 设置容器内部的环境变量
            -h : 设置容器内部的主机名
            --network : 指定使用哪个网络
            --link : 链接到另一个容器(不推荐)
	#前提:
		docker容器启动的前提:至少有一个应用进程运行在前台。
	
	#启动流程:
        1、检查本地是否存在需要被使用的镜像,如果存在则直接使用,如果不存在则去公网下载。
        2、根据镜像创建容器
2.展示dockers容器列表
	格式:
		docker ps [参数]  #默认情况下展示当前系统上所有的正在运行的容器
	
            参数:
                -a : 展示所有的容器
                -q : 仅展示容器ID
	
	显示解释:
		CONTAINER ID:容器ID
		IMAGE		:镜像ID|镜像名称
		COMMAND		:容器启动执行的命令
		CREATED		:创建距离现在的时间
		STATUS		:状态
		PORTS		:端口信息
		NAMES		:容器的名称
3.删除容器
	格式:
		docker rm [参数] [容器的名称|ID]
		
	参数:
		-f : 强制删除
	
	# 强制删除所有容器
		docker rm -f $(dockers ps -a -q)
4.创建容器
	格式:
		docker create
5.启动容器
	格式:
		docker start
6.进入容器
	1.attach
		建立一个宿主主机到容器中pid为1的进程上的一个管道,但是一旦attach断开连接,docker容器随即退出。
	2.exec(推荐)
		使用其可以在宿主主机上执行一个容器内部的命令。
	3.nsenter
		建立一个宿主主机和容器之间的一个管道。	
	4.ssh
		使用了 Docker 容器之后不建议使用 ssh 进入到 Docker 容器内。
7.容器文件的复制 
	格式:
	 	docker cp 
	 	1、将文件复制到容器内
			docker cp [宿主主机文件路径] [容器名称|ID]:[容器内路径]
			
		2、将容器内文件复制到宿主主机
			docker cp [容器名称|ID]:[容器内路径] [宿主主机文件路径]
8.容器导入导出
	export和import
	格式:
		导出:
			docker export -o [打包的文件名] [容器ID或名称]
		导入:
			docker import [文件名] [镜像名称:版本号]
9.import及export 和 save及load之间的区别
	1、import可以自定义镜像名称,load则不行
	2、save可以同时保存多个镜像,export则不能一次保存多个容器
	3、save保存的镜像体积要大于export保存的镜像体积
	4、两者之间互不能导入

Docker网络

linux网络

# 创建一个命名空间
ip netns add test01
# 查看创建过的命名空间
ip netns list

# 创建Veth设备对
ip link add veth type veth peer name veth001

# 将Veth设备对分发至test01命名空间
ip link set veth001 netns test01

# 将test01中veth001分配IP
ip netns exec test01 ip addr add 172.16.0.111/20 dev veth001

					ip addr add 172.16.0.112/20 dev veth
				
# 重启veth设备对
ip netns exec test01 ip link set dev veth001 up/down

Docker网络模式

1、HOST模式
	使用宿主主机的网卡
	docker run --network host [镜像名称|ID]

2、container模式
	共享一个容器的网络
	docker run -d --network "container:[共享容器名称]" nginx
	
3、none模式
	不为容器提供任何网络。
	docker run -d --network none centos
	
4、网桥
	将多个容器使用docker网桥进行地址转换的方式实现网路互通

	1、创建网桥
	docker network create [网桥名]
	
	2、查看网桥
	docker network ls
	
	3、使用网桥
	docker run -d --network [网桥名] [镜像]

docker network

1、展示当前主机上网桥列表
	docker network ls

2、创建网桥
	docker network create
    
    参数:
    	-d : 指定网桥的类型
    	--gateway : 指定网关
    	--subnet : 指定子网

3、查看网桥的详细信息
	docker network inspect [网桥名称|id]

4、删除网桥
	docker network rm 

5、清空空闲的并且是自创的网桥
	docker network prune -f

6、连接上一个网桥
	docker network connect [参数] [网桥名称] [容器名称]

7、断开链接
	docker network disconnect [参数] [网桥名称] [容器名称]

标签:容器,network,基础知识,网桥,必会,镜像,docker,ID
From: https://www.cnblogs.com/lzl121/p/17254783.html

相关文章

  • docker启动出现Job for docker.service failed because the control process exited e
    只需要修改docker.server文件即可: 执行以下命令:vimvim/lib/systemd/system/docker.service 然后将ExecStart=/usr/bin/dockerd-Hfd://改成ExecStart=/usr/bin/......
  • docker挂载volume的用户权限问题,理解docker容器的uid
    docker挂载volume的用户权限问题,理解docker容器的uid在刚开始使用dockervolume挂载数据卷的时候,经常出现没有权限的问题。这里通过遇到的问题来理解docker容器用户uid......
  • 小规模容器编排使用Docker Swarm不香么,用个锤子的kubernetes
    文章目录一、DockerSwarm是什么?二、Swarmkit和SwarmMode是什么?三、DockerSwarm的核心设计四、DockerSwarm安装部署4.1、初始化Swarm节点14.2、新节点加入Swarm集群4.3、......
  • install mysql in docker for testing
    installmysqlindockerfortesting#step-1:configuremysql_port='3306'mysql_password='123qwe'mysql_data_dir="~/docker/mysqld_${mysql_port}/data"#step-2:......
  • run mysql server in docker with exist database
    step1:putyourdatabasein$mysql_data_dirfirststep2:putyourmy.confto$mysql_cnf,forexample:thatmy.cnffromalibabacloud[mysqld]pid-file=......
  • docker 部署 1
    先打包本地idea项目  上传到linux服务器任意目录并创建一个叫Dockerfile文件    创建镜像dockerbuild-tmydemo.  启动镜像映射端口 ......
  • gralde插件->docker-compose的使用
    在javaweb项目中,本地开发经常会需要在本地使用docker启动数据库等之类的服务。gradle提供了一个插件,允许通过gradletask启动docker的容器。在这里我们介绍的一个gralde插......
  • C语言基础知识
    1、变量类型   字符型--char--所占字节(1)   整型--int--所占字节(4)   短整型--short--所占字节(2)   长整型--long--所占字节(4)   更长的整形--longlo......
  • 如何在 Docker 中配置并启动 Redis
    1.下载Redis镜像在Docker中启动Redis之前,需要先从DockerHub下载Redis镜像。可以使用以下命令进行下载:dockerpullredis:6.0.82.创建并配置Redis自定义......
  • 通信基础知识-名词解释
    AWGN:加性高斯白噪声(AWGN)是一个数学模型,用于仿真发射机和接收机之间的信道。这个模型是线性增加的宽带噪声,具有恒定的频谱密度和高斯分布的幅度。AWGN不适用于衰落、互......