docker 搭建和使用
使用场景:
-
1、开发、测试环境
-
2、微服务架构(K8S)-基于容器
-
docker组成:
1、镜像仓库: 存放镜像的地方
2、镜像: 相当于python里面类的概念,是静态的,不能直接使用
3、容器: 是通过镜像创建的,相当于实例的概念,是动态的,可以访问的
docker宿主机: 你的docker安装在哪一个机器,那个机器就是宿主机
-
搭建准备
- 1、安装VMware虚拟机(自行搭建)
- 2、安装Xshell、xftp(SecureCRT、putty等根据个人使用习惯自行安装)
-
docker操作
- 查看虚拟机的静态IP ifconfig
- 查看虚拟机的静态IP ifconfig
-
进入ip配置文件设置
vi/etc/sysconfig/network-scripts/ifcfgens33
-
修改静态IP,network,gateway
-
BOOTPROTO=static
-
NETMASK=255.255.255.0
-
GATEWAY=192.168.32.2
-
NETMASK GATEWAY具体设置什么,根据自己VM虚拟机的设置来
-
-
复制一下到文件最后,保存退出:wq
DEVICE=ens33
ONBOOT=yes
#ZONE=public
IPADDR=192.168.32.160
NETMASK=255.255.255.0
GATEWAY=192.168.32.2
DNS1=8.8.8.8
-
重启网卡服务
systemctl restart network
docker进程相关操作
#1- 查看docker 版本
docker -V
#2- 查看docker 命令
docker --help
#3- 查看docker 服务端与客户端版本详情
docker version
#4- 启动docker进程
systemctl start docker
#5- 关闭docker
systemctl stop docker
#6- 重启docker
systemctl restart docker
#7- 查看docker运行状态
systemctl status docker
#8- 关闭防火墙
systemctl stop firewalld #disable
镜像操作
#镜像--容器的模板--打包好的---静态的概念--使用的时候请创建容器
#1- 查看镜像---本地的
docker images
#2- 搜索镜像--首先本地 --默认的地址
docker search tomcat
#3- 找到所有的镜像--拉取 pull
docker pull tomcat #最新版本
docker pull tomcat:7#最新版本
docker images
docker rmi 镜像id#删除镜像
#4- 本地有了镜像--可以创建容器
#根据tomcat镜像,创建一个myTomcat容器
docker create --name=myTomcat tomcat# 只是创建,没有运行
#5- 查看容器
docker ps #查看在运行的容器
docker ps -a#查看所有的容器
#6- 运行容器
docker start myTomcat #start 后面可以跟 容器的id(前2-3位) 或者 name
#7- 停止容器
docker stop myTomcat #start 后面可以跟 容器的id(前2-3位) 或者 name
#8- 删除没有运行的容器
docker rm 容器id或者名字
#9- 删除在运行的容器
docker rm -f 容器id或者名字
#10- 删除所有的容器
#先停止所有的容器
docker stop $(docker ps -a -q)
#删除
docker rm $(docker ps -a -q)
运行容器的一些操作
#我需要搭建一个web项目---tomcat
#1- 访问端口 你需要访问的是容器内部的端口
#2- war项目文件这么传递给容器里的tomcat里webapps下
#1- 查看docvker run 命令---创建并且启动容器
docker run --help
docker run 后面的参数
-i #运行容器
-t #容器启动后,进入命令行
-v #目录映射--挂载
-d #守护进程--后台运行
-p #端口映射 如果容器里有tomcat ,你本机的windows想访问:
#docker tomcat 端口号是8080,需要在虚拟机映射一个端口 9099
#windows才可以访问 http://虚拟机的ip:9099
#2- 创建容器,并且进入命令行---进入容器
docker run -di --name=mytomcat2 tomcat
docker run -it --name=myTomcat tomcat /bin/bash
#3- 退出
exit #容器已经退出
#4- 有没有一起启动方法,不退出容器
#创建运行一个守护的容器
docker run -id --name=myTomcat2 tomcat
#进入
docker exec -it myTomcat2 /bin/bash
****宿主机与docker容器的文件传递
#1- 在宿主机创建一个文件
touch xt.txt
#2- 把改文件复制到容器里去
docker cp xt.txt myTomcat2:/
#3- 进入根目标
cd /
#查看
ls
#1- 怎么从容器中的文件copy 到宿主机里
touch abc.txt
#2- 退出容器
exit
#3-
docker cp myTomcat2:/abc.txt /root
访问tomcat
#启动并且作为守护进程
#-p 宿主机的端口:容器里应用的端口 8080 不冲突就行
#war挂载宿主机 -v 宿主机的路径:容器路径 路径会新建
docker run -di --name=myTomcat -p 8080:8080 -v /usr/local/tomcat/webapps:/usr/local/tomcat/webapps tomcat
http://虚拟机ip:9999
#2- 把war包放到宿主机的挂载目录里 ,直接刷新浏览器就出现项目的页面
#微服务 k8s 容器式的性能测试
#启动容器时关联其他容器 mysql独立的容器(给下账号密码。默认是root)
docker run -di --name=tomcat2 -p 8080:8080 --link mysql --link redis --link rabbitmq
docker logs 命令
docker logs [options] 容器`获取容器的日志
# 例如打印容器`mytest`应用后10行的内容
docker logs -f --tail 10 a4dac74d48f7
通过docker logs命令可以查看容器的日志。
docker logs -f -t --tail 100 datacenter
命令格式:
$ docker logs [OPTIONS] CONTAINER
Options:
--details 显示更多的信息
-f, --follow 跟踪实时日志
--since string 显示自某个timestamp之后的日志,或相对时间,如42m(即42分钟)
--tail string 从日志末尾显示多少行日志, 默认是all
-t, --timestamps 显示时间戳
--until string 显示自某个timestamp之前的日志,或相对时间,如42m(即42分钟)
例子:
查看指定时间后的日志,只显示最后100行:
$ docker logs -f -t --since="2018-02-08" --tail=100 CONTAINER_ID
查看最近30分钟的日志:
$ docker logs --since 30m CONTAINER_ID
查看某时间之后的日志:
$ docker logs -t --since="2018-02-08T13:23:37" CONTAINER_ID
查看某时间段日志:
$ docker logs -t --since="2018-02-08T13:23:37" --until "2018-02-09T12:23:37" CONTAINER_ID
docker加速
默认情况下,docker下载镜像是从官网下载,下载速度特别特别的慢。使用阿里云加速器可以提升获取Docker官方镜像的速度
在指定目录创建文件(如已存在请忽略此步):
vi /etc/docker/daemon.json
修改文件内容为:
{
"registry-mirrors": ["https://v2c6fjn8.mirror.aliyuncs.com"]
}
+ 注意:此网址是从阿里云控制台复制过来的,每个登录用户都不一样。当然用上面的这个地址也可以
+ 重启docker服务
systemctl restart docker
docker安装
1、卸载旧版本
较旧的 Docker 版本称为 docker 或 docker-engine 。如果已安装这些程序,请卸载它们以及相关的依赖项
sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
2、##安装 Docker Engine-Community
使用 Docker 仓库进行安装
在新主机上首次安装 Docker Engine-Community 之前,需要设置 Docker 仓库。之后,您可以从仓库安装和更新 Docker。
设置仓库
安装所需的软件包。yum-utils 提供了 yum-config-manager ,并且 device mapper 存储驱动程序需要 device-mapper-persistent-data 和 lvm2。
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
3、使用以下命令来设置稳定的仓库。
阿里云仓库
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
安装 Docker Engine-Community
4、安装最新版本的 Docker Engine-Community 和 containerd,或者转到下一步安装特定版本:
sudo yum install docker-ce docker-ce-cli containerd.io
启动docker
sudo systemctl start docker