Docker安装及简单命令介绍
一、DOCKER基本知识介绍
1.docker是什么?
Docker 是 采用Linux Container技术的高级容器引擎,它能够提供轻量级的虚拟化,它的源代码托管在 Github 上,它是 基于go语言开发并遵从Apache2.0协议开源的一种软件。
2.docker三大金刚
- 镜像:(image) 运行环境的集合,镜像运行为容器
- 启动镜像后会增加一个空白层,所有操作都会写入到空白层上,空白层会覆盖下方的配置和操作。只能读取不能写入
- 仓库:(repository) 存放镜像
- 容器:(container) 已运行的环境
- 不同的容器工作在相对独立的空间,由namespace隔离,一个镜像可以启动多个容器
- 如果一个容器可以稳定工作,它在前端需要 有一个守护进程
3.docker网络管理
- docker一开启会自动创建一个叫做docker0的网桥,可以使各个容器之间可以相互通信,容器没有自己的内核容器与容器之间采用network-namespace进行网络隔离:vethX
- 每一个容器会连接到自己的namespace-- vethX上,vehtX是通过网桥设备创建的,彼此之间可以相互通信,因此容器之间也是可以相互通信。
- 网桥设备与真实网卡之间通过NAT实现通信
4.Docker的4种网络模式
- host模式,使用--net=host指定。
- container模式,使用--net=container:NAME_or_ID指定。
- none模式,使用--net=none指定。
- bridge模式,使用--net=bridge指定,默认设置。
4.1 host模式
如果启动容器的时候使用host模式,那么这个容器将不会获得一个独立的Network Namespace,而是和宿主机共用一个Network Namespace。容器将不会虚拟出自己的网卡,配置自己的IP等,而是使用宿主机的IP和端口。
4.2 container模式
container模式指定新创建的容器和已经存在的一个容器共享一个Network Namespace,而不是和宿主机共享。新创建的容器不会创建自己的网卡,配置自己的IP,而是和一个指定的容器共享IP、端口范围等。同样,两个容器除了网络方面,其他的如文件系统、进程列表等还是隔离的。两个容器的进程可以通过lo网卡设备通信。
4.3 none模式
这个模式和前两个不同。在这种模式下,Docker容器拥有自己的Network Namespace,但是,并不为Docker容器进行任何网络配置。也就是说,这个Docker容器没有网卡、IP、路由等信息。需要我们自己为Docker容器添加网卡、配置IP等。
4.4 bridge模式
bridge模式是Docker默认的网络设置,此模式会为每一个容器分配Network Namespace、设置IP等,并将一个主机上的Docker容器连接到一个虚拟网桥上。下面着重介绍一下此模式。
二、docker安装
1.安装前准备工作:
centos7.0以上内核版本
关闭selinux与iptables,配置yum源,可以连外网:ping www.baidu.com
- sed -i "s/SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config
- systemctl disable firewalld.service
- systemctl stop firewalld.service
重启 reboot
2.docker安装
2.1脚本直接安装最新版本docker
- yum clean all
- yum makecache
- yum -y upgrade
-
- #升级后内核版本为7.4-1708 或 7.5-1804
- curl -sSL https://get.docker.com/ | sh
- systemctl start docker
- systemctl enable docker
- docker run hello-world
- docker version #必须有client端与server端!!
2.2 yum安装
2.2.1、更新yum源
- yum clean all
- yum makecache
- yum -y update
2.2.2、卸载旧版本(如果安装过旧版本的话)
yum remove docker docker-common docker-selinux docker-engine
2.2.3、安装需要的软件包, yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖的
yum -y install yum-utils device-mapper-persistent-data lvm2
2.2.4、设置yum源
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
2.2.5、可以查看所有仓库中所有docker版本,并选择特定版本安装
yum list docker-ce --showduplicates | sort -r
docker version #必须有client端与server端!!?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MzMwMzQ4Nw==,size_16,color_FFFFFF,t_70" width="919">
2.2.6、安装docker
安装最新版本的docker: yum -y install docker-ce
安装指定版本的docker:如-------> yum -y install docker-ce-17.12.0.ce
2.2.7、加入开机启动
- systemctl enable docker.service
2.2.8、验证安装是否成功
docker version
##有client和service两部分表示docker安装启动都成功了
2.2.9 别名设置 根据个人情况而定
- vim /root/.bashrc
- alias vi='vim'
- alias dp='docker ps -a '
- alias di='docker images'
- alias dr='docker rm -f $(docker ps -a -q)'
-
- . /root/.bashrc
三、docker基本命令
- docker images #查看镜像
- docker ps #查看当前已经运行的容器
- docker ps -a #查看当前所有的容器
- docker ps -a -q #只显示当前运行的容器的ID号
- docker rm -f +前4位容器ID号
- docker rm -f $(docker ps -a -q) #删除当前运行的所有容器
-
-
- docker pull #下载镜像 docker pull hub.c.163.com/public/centos:6.7-tools
- docker run #从镜像运行为容器
- docker start/stop 容器启动停止
- docker rmi +别名或ID号 Docker 镜像的删除
- dockers images -a -q #显示镜像所有的ID号
- docker rmi -f $(docker images -a -q) #强制删除所有镜像
单一容器管理命令 :
- docker ps --no-trunc #查看容器详细信息
- docker stop/start CONTAINERID #通过容器id启动/停止
- docker run --restart=always #容器的自动启动
- docker start/stop MywordPress #通过容器别名启动/停止
- docker inspect MywordPress #查看容器所有基本信息
- docker logs MywordPress #查看容器日志
- docker stats MywordPress #查看容器所占用的系统资源
- docker exec 容器名 容器内执行的命令 # 容器执行命令
- docker exec -it 容器名 /bin/bash #登陆容器的bash
其他命令 :
- 1.docker info 守护进程的系统资源设置
- docker history 镜像名 查询镜像的分层
- --no-trunc 显示完整的历史命令
-
- 2.容器打包成镜像
- docker commit 93f2e50a3439/centos6 pqj/jingxiang:v1.0
- 打包命令 容器ID/容器名 谁的/镜像名字:版本号
-
- 3.docker-compose 多容器编排工具
- docker-compose up -d 创建启动项目
- docker-compose start 启动项目
- docker-compose stop 关闭项目
-
- 4.镜像改标签
- docker tag 镜像ID pqj/test:1.0(xx/xx/xx:xx) #一般情况下要上传镜像的时候才需要改标签!
- docker tag peng/tomcat:v1.0 docker.pqj.com/library/tomcat:v1.0
-
- 5.镜像导出入导入
- docker save -o /root/pqj.tar pqj/jingxiang:v1.0 #镜像导出
- docker load -i test.tar #镜像导入
-
- 6.Docker程序将读取Dockerfile,根据指令生成定制的image。
- docker build -t wangyang/jdk-tomcat .
转自:https://blog.csdn.net/weixin_43303487/article/details/83996293