Centos7 docker
uname -r 查看系统版本
docker version docker版本信息
直接输入docker可以查看Docker的命令用法
docker command --help 查看指定命令详细用法
systemctl enable docker 开机启动docker
systemctl status docker 查看docker状态
docker加速地址
docker pull registry.docker-cn.com/library/tomcate
容器操作
tomcat
docker run -d -p 8080:8080 tomcat
mysql:5.5
docker run -p 3306:3306 --name mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.5
registry.docker-cn.com/library/redis
docker run -d -p 6379:6379 --name redis registry.docker-cn.com/library/redis
rabbitmq
docker pull registry.docker-cn.com/library/rabbitmq:3-management 下载镜像
docker run -d -p 5672:5672 -p 15672:15672 --name myrabbitmq IMAGEID(24cb552c7c00) 运行镜像
运行
docker start 容器ID或容器名 #启动容器
docker stop 容器ID或容器名 #停止容器
docker rm -f 容器ID或容器名 #删除容器 #-f 表示强制
docker logs 容器ID或容器名 #查看日志
docker run --name 容器名 -i -t -p 主机端口:容器端口 -d -v 主机目录:容器目录:ro 镜像ID或镜像名:TAG
# --name 指定容器名,可以自定义,不指定自动命名
# -i 以交互模式运行容器
# -t 分配一个伪终端,既命令行,通常-it组合使用
# -p 指定映射端口,将主机端口映射到容器端口
# -d 后台运行
# -v 指定挂载主机目录到容器目录,默认为rw读写模式,ro表示只读
容器列表
docker ps #查看正在运行的容器
docker ps -a -q
# -a 查看所有容器(运行中,未运行)
# -q 只查看容器的ID
查看容器元信息(json格式)
docker inspect 容器ID或容器名
docker inspect java:8(imagesID)
镜像操作
查找镜像
docker search tomcat
下载镜像
docker pull 镜像名 #默认下载latest,最新版本
docker pull 镜像名:TAG #TAG为版本
查看本地所有镜像
docker images
删除镜像
docker rmi -f 镜像ID或镜像名:TAG #-f强制删除
更新镜像
docker commit
先使用基础镜像创建一个容器,然后对容器进行更改,然后使用更新镜像docker commit命令提交为一个新的镜像(以tomcat为例)
1.根据基础镜像,创建容器
docker run --name mytomcat -p 80:8080 -d tomcat
2.修改容器内容
docker exec -it mytomcat /bin/bash
cd webapps/ROOT
rm -f index.jsp
echo hello world > index.html
exit
3.提交为新镜像
docker commit -m="描述消息" -a="作者" 容器ID或容器名 镜像名:TAG
#例子
docker commit -m="修改了首页" -a="admin" mytomcat lz/tomcat:v1.0
4.使用新镜像运行容器
docker run --name mytomcat -p 8080:8080 -d lz/tomcat:v1.0
使用Dockerfile构建镜像
1.vi Dockerfile 创建一个Dockerfile文件
#Dockerfile指令须大写
FROM tomcat
MAINTAINER lz
RUN rm -f /usr/local/tomcat/webapps/ROOT/index.jsp
RUN echo "<h1>hello world</h1>" > /usr/local/tomcat/webapps/ROOT/index.html
2.构建新镜像
docker build -f Dockerfile -t lz/tomcat:v2.0
# -f Dockerfile路径,默认是当前目录
# -t 指定新镜像的名字以及TAG
使用Dockerfile构建SpringBoot应用镜像
1.准备
1.1 将springboot项目打包成可执行jar包,注意项目依赖的lib必须一起打包
1.2 将jar包上传到Linux服务器
2.构建
2.1 在jar包路径下创建Dockerfile文件
FROM java:8 #指定基础镜像,本地没有会从dockerHub pull下来
ADD comlz.jar /comlz.jar #把可执行jar包复制到基础镜像的根目录下
EXPOSE 8080 #镜像暴露的端口,SpringBoot设置的端口一致
ENTRYPOINT ["java","-jar","comlz.jar"] #在镜像运行为容器后执行的命令
2.2 使用docker build命令构建镜像,基本语法, 会执行如上Dockerfile内的4个步骤
docker build -f Dockerfile -t com/lz:v1 .
# -f 指定Dockerfile文件路径
# -t 指定镜像名和TAG
# . 指当前目录,这里实际上需要一个上下文路径
镜像构建成功入下,可查
[root@localhost ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
com/lz v1 77a5fef2268c 30 minutes ago 666MB
3.运行
docker run --name comlz -p 8080:8080 -d com/lz:v1
拷贝文件
docker cp 主机文件路径 容器ID或容器名:容器路径 #主机中文件拷贝到容器中
docker cp 容器ID或容器名:容器路径 主机文件路径 #容器中文件拷贝到主机中
进入正在运行容器
docker exec -it 容器id或者容器名 /bin/bash
# 进入正在运行的容器并且开启交互模式终端
# /bin/bash固有写法, 因为docker后台必须运行一个进程,否则容器就会退出,这里表示启动容器后启动bash.
# 也可以用 docker exec 在运行中的容器执行命令
[root@localhost docker]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
eca6d76f092a tomcat "catalina" 8 seconds Up 0:8080->8080/tcp nervous_kirch
[root@localhost docker]# docker exec -it nervous_kirch /bin/bash
#[root@localhost docker]# docker exec -it eca6d76f092a /bin/bash
root@eca6d76f092a:/usr/local/tomcat# ls
BUILDING.txt NOTICE RUNNING.txt include native-jni-lib work
CONTRIBUTING.md README.md bin lib temp
LICENSE RELEASE-NOTES conf logs webapps
安装前有3个步骤,否则可能出错
1.安装依赖软件包
yum install -y yum-utils device-mapper-persistent-data lvm2
#安装前可查看device-mapper-persistent-data和lvm2是否已经安装
rpm -qa|grep device-mapper-persistent-data
rpm -qa|grep lvm2
2.设置yum源
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
3.更新yum软件包索引
yum makecache fast
镜像加速
1.进入该目录
cd /etc/docker/
2.确认是否有daemon.json文件,没有则vi创建该文件
vi daemon.json
3.在daemon.json中加入配置
{
"registry-mirrors": ["https://dqeyrp8g.mirror.aliyuncs.com"]
}
4.通知systemd重载此配置文件
systemctl daemon-reload
5.重启docker服务
systemctl restart docker