Docker容器
2020-08-03 08:59:03 0 举报
AI智能生成
详细记录Docker容器相关知识与命令操作!
作者其他创作
大纲/内容
Dockers的安装流程
下载Dockers依赖的环境
yum -y install yum-utils device-mapper-persistent-data lvm2
指定Dockers的镜像源(aliyun)
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
采用yum的方式安装
yum makecache fast
yum -y install docker-ce
启动Dockers服务
systemctl start docker
设置开机自动启动
systemctl enable docker
测试(中央仓库拉取,可不测)
docker run hello-world
防火墙问题
因为我们需要Linux和Windows系统来交互完成启动各种镜像,所以防火墙是需要关闭的
查看防火墙服务状态
systemctl status firewalld
关闭防火墙
systemctl stop firewalld
关闭防火墙开机自启
systemctl disable firewalld.service
Docker仓库
Dockers官方的中央仓库,镜像是很全的,但是国内使用起来较慢,所以我们可以使用国内的镜像网站
仓库
中央仓库
https://hub.docker.com/
网易蜂巢
https://c.163yun.com/hub#/home
daocloud
http://hub.daocloud.io/
私服
使用私服,需要创建或修改/etc/docker/daemon.json文件并添加如下内容,文件内的ip和port可以指定多个
{"registry-mirrors": ["https://registry.docker-cn.com"],
"insecure-registries": ["ip:port"] }
"insecure-registries": ["ip:port"] }
添加后重启两个服务
systemctl daemon-reload
systemctl restart docker
Docker命令操作
容器和镜像的关系
关于镜像的命令操作
拉取镜像
docker pull 镜像名称[:tag]
例如:docker pull daocloud.io/library/tomcat:8.5.15-jre8
查看所有本地镜像
docker images
删除本地镜像
docker rmi 镜像标识 | 镜像名称:tag
docker rmi 镜像ID
docker rmi daocloud.io/library/tomcat:8.5.15-jre8
镜像的导入导出
将本地镜像导出
docker save -o 导出路径 镜像ID
例如:doeker save -o /usr/local/abc.tar b8dfe9ade316
加载本地的镜像文件
docker load -i 镜像文件
例如:docker load -i /usr/local/jdk.tar
修改镜像名称
docker tag 镜像ID 新镜像名称:版本
例如:docker tag b8dfe9ade316 mytomcat:1.0
关于容器的命令操作
使用镜像创建容器
无参数创建容器
docker run 镜像标识 | 镜像名称[:tag]
docker run b8dfe9ade316
docker run daocloud.io/library/tomcat:8.5.15-jre8
常用参数创建容器
docker run -d -p 宿主机端口:容器端口 --name 容器名称 镜像标识 | 镜像名称[:tag]
( -d )代表后台运行容器
( -p宿主机端口:容器端口 )为了映射当前Linux的端口和容器的端口
( --name 容器名称 )指定容器的名称
查看容器详细信息
docker ps [-aq]
( -a )查看全部的容器,包括没有运行的容器
( -q )只查看容器的标识
查看容器的日志信息
docker logs -f 容器ID
( -f )可以滚动查看日志的最后几行
进入容器内部
docker exec -it 容器ID bash
docker exec -it 容器名称 bash
复制内容到容器中
docker cp 文件名称 容器ID:容器内部路径
操作容器的运行状态
启动停止运行的容器
docker start 容器ID
重新启动容器
docker restart 容器ID
停止指定的容器(删除容器前,需要先停止容器)
docker stop 容器ID
停止全部容器
docker stop $(docker ps -qa)
删除容器
删除指定容器
docker rm [-f] 容器ID
( -f )强制停止并删除指定容器
删除全部容器
docker rm [-f] $(docker ps -qa)
Docker应用
Dockers安装tomact流程
下载tomact镜像
docker pull daocloud.io/library/tomcat:8.5.15-jre8
在有tomact镜像的基础下运行tomact容器
docker run -d -p 8080:8080 --name tomcat
Docker安装MySQL流程
下载MySQL镜像
docker pull daocloud.io/library/mysql:5.7.4
在有MySQL镜像的基础下运行MySQL容器
docker run -d -p 3366:3306 --name mysql -e MYSQL_ROOT_PASSWORD=root
宿主机中通过3366连接容器中的MySQL
mysql -uroot -P 3366 -proot -h 192.168.1.135
数据卷
为什么要使用数据卷
为部署SSM的工程,需要使用到Docker的cp命令将宿主机内的ssm.war文件复制到容器内部,操作麻烦
数据卷与宿主机内目录映射后,项目的war包可以同步保存在数据卷与宿主机中
注意:数据卷是创建在宿主机内的!
数据卷与宿主机映射前置知识
通过数据卷名称映射,如果数据卷不存在。Docker会帮你自动创建,会将容器内部自带的文件,存储在默认的存放路径中
通过路径映射数据卷,直接指定一个路径作为数据卷的存放位置。但是这个路径下是空的
关于数据卷的命令操作
创建数据卷
docker volume create 数据卷名称
注意:创建数据卷之后,默认会存放在一个目录下 /var/lib/docker/volumes/数据卷名称/_data
查看数据卷详情
docker volume inspect 数据卷名称
查看全部数据卷
docker volume ls
删除指定数据卷
docker volume rm 数据卷名称
关于宿主机映射数据卷的命令操作
通过数据卷名称映卷
docker run -v 数据卷名称:容器内部的路径 镜像ID
通过宿主机路径映射数据卷
docker run -v 宿主机路径:容器内部的路径 镜像ID
Dockerfile自定义镜像
创建自定义镜像就需要创建一个Dockerfile文件
Dockerfile文件内容
from daocloud.io/library/tomcat:8.5.15-jre8
copy ssm.war /usr/local/tomcat/webapps
copy ssm.war /usr/local/tomcat/webapps
注意:制作SSM容器镜像,而且ssm.war要放在Dockerfile的同级目录下
参数
( from )指定当前自定义镜像依赖的环境
( copy )将相对路径下的内容复制到自定义镜像中
( workdir )声明镜像的默认工作目录
( run )执行的命令,可以编写多个
( cmd )需要执行的命令,在workdir下执行的,cmd可以写多个,但是只以最后一个为准
通过Dockerfile制作镜像
docker build -t 镜像名称[:tag] war包存在路径
例如:docker build -t mytomcat:1.0 /root/my_mirror
注意:war包所存在的路径,如果Dockerfile文件与war包所在同一目录可以使用相对路径 . 来代替
Docker-Compose应用
Docker-Compose安装流程
下载Docker-Compose
https://github.com/docker/compose/releases/download/1.24.1/docker-compose-Linux-x86_64
修改DockerCompose文件的名称,给予DockerCompose文件一个可执行的权限
mv docker-compose-Linux-x86_64 docker-compose
chmod 777 docker-compose
将DockerCompose移动到/usr/local/bin目录下
mv docker-compose /usr/local/bin
任意目录下输入docker-compose测试
docker-compose
DockerCompose管理MySQL和Tomact容器
创建docker-compose.yml文件
yml文件以key: value方式来指定配置信息
多个配置信息以换行+缩进的方式来区分
在docker-compose.yml文件中,不要使用制表符
docker-compose命令操作
在docker-compose.yml文件下使用docker-compose命令
基于docker-compose.yml启动管理的容器
docker-compose up -d
关闭并删除容器
docker-compose down
开启/关闭/重启已存在的由docker-compose维护的容器
docker-compose start/stop/restart
查看由docker-compose管理的容器
docker-compose ps [-a]
( -a )查看所有容器,包括未运行的容器
查看日志
docker-compose logs -f
Docker-Compose搭配Dockerfile应用
使用docker-compose.yml文件以及Dockerfile文件在生成自定义镜像的同时启动当前镜像,并且由docker-compose去管理容器
启动基于docker-compose.yml以及Dockerfile文件构建的自定义镜像
docker-compose up -d
注意:如果自定义镜像不存在,会帮助我们构建出自定义镜像,如果自定义镜像已经存在,会直接运行这个自定义镜像
重新构建自定义镜像
docker-compose build
运行当前内容,并重新构建
docker-compose up -d --build
0 条评论
下一页