docker入门学习笔记(代码片段)

*^O^*—*^O^* *^O^*—*^O^*     2022-12-13     721

关键词:

docker基础操作入门笔记


文章中几乎所有的写容器Id的地方,都可以使用容器名称来写命令

镜像操作

列出镜像列表

docker images

获取新的镜像
这里可以通过==:==来决定获取那一版本,不指定则是最新的

docker pull ubuntu:13.10

docker pull ubuntu

查找镜像

docker search ubuntu


设置镜像标签方便查找使用

docker tag 镜像Id 镜像名称:标签名


可以看到在执行完成之后,同一个镜像有了两个标签一个是latest 一个是tag

删除镜像
在删除镜像之前需要删除容器才可以删除

docker rmi ubuntu:18.04


用自己jar制作镜像
首先需要在一个文件夹下存放Dockerfile文件和自己的jar吧

dockerfile写入如下内容

FROM openjdk:8-jdk-alpine
MAINTAINER zxf
ADD get-gitlab-0.0.1-SNAPSHOT.jar wk.jar
EXPOSE 4000
ENTRYPOINT ["java","-jar","wk.jar"]

这里端口是我程序内配置文件指定的端口,ADD 后面是我们的jar名,wk.jar是我起的别名

docker build -t test-test .

在当前文件加执行上面的操作,就会生成一个叫test-test的镜像

容器操作

启动容器
这里-it 和-itd 后者是后台运行的意思,前者输完会直接进入容器中

docker run -itd --name=ubuntu-test ubuntu /bin/bash


这里因为没有指定端口,所以后面的ports底下为空,这里可以将好几个容器的端口开放,然后对应一个内部的服务端口

启动已停止运行的容器

docker start 容器Id

停止容器

docker stop 容器Id

进入容器
这里有两中方式,我这里只推荐一种,下面这两条命令是一样的,不过有时上面这个命令进不去容器,就可以使用下面的命令

docker exec -it 容器Id /bin/bash
docker exec -it 容器Id /bin/sh


退出容器只需要输入exit,就可以了

打印容器日志
两者都可以打印日志,第二个命令执行,就会一直停留在日志打印界面,对于快速定位问题很有帮助

docker logs gitlab
docker logs gitlab -f

删除容器

docker rm -f 容器id

将容器打成镜像

docker commit -m  "说明文字(可不写)"   -a  "作者(可不写)"   [CONTAINER ID]  [自己起的容器名]

数据卷操作(挂载)

为什么要挂载

因为容器启动后产生的数据,要是第二次再启动就会损失掉数据,为了让docker容器在运行时的数据得带持久化,就需要挂载,就是将docker容器的某一个目录和宿主机上的某一个目录映射起来,可以说就是两者有操作同一个数据,每次容器重启的时候,容器会自动将挂载目录下的数据同步到docker内部

如何挂载

最好的选择就是在容器启动的时候挂载,容器一旦跑起来后,再要去挂载会很麻烦

docker run -itd --name=[容器名] -v /root/data:/root/data [镜像名]

这里使用==-v== 关键字来指定,前面是宿主机的路径,后面是容器内部路径,我为了方便查找,两个路径写的一样,这里可以写成不一样的

另外需要注意的是,MySQL的挂载需要指定目录,因为MySQL的数据保存在/var/lib/mysql 下,这个是默认的,为了避免麻烦最好直接挂载该目录
下面是一条启动MySQL容器并且挂载并且设置自启动的命令

docker run -itd --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=novastar -v /root/workspace/data/mysql:/var/lib/mysql --restart=always  mysql

其他

为了防止宿主机断电,docker服务能够跑起来,最好的处理方式设置docker容器开机自启,容器也要设置开机自启

查询所有是否开机自启

systemctl list-unit-files | grep enable

docker设置开机自启

systemctl enable docker.service

容器的自启可以在创建的时候,或者对于已存在的容器设置自启

docker run --restart=always 容器id 或 容器名称

docker update --restart=always 容器id 或 容器名称

取消容器自启

docker update --restart=no 容器id 或 容器名称

时间同步问题

执行下面操作,就可将宿主机的时间和容器的时间同步,所以发现时间有问题,首先需要检查宿主机时间是否正确,接着可是使用下面的命令,将docker容器的时间就和宿主机同步了

docker cp /usr/share/zoneinfo/Asia/Shanghai mysql:/etc/localtime

jar包的运行

通过下面两条命令就可以在宿主机执行容器里的jar包,如下,但是需要配置容器对宿主机的免密 ==-Duser.timezone=GMT+08 ==指定jar包的运行的时间,有这句话,就不会有时间不对应了

ssh -p 8801 root@172.16.80.60 'nohup java -jar -Duser.timezone=GMT+08 /root/workspace/data/project/XXXX.jar >platform.log 2>&1 &'
ssh -p 8801 root@172.16.80.60 'tail -f ~/platform.log -n300'

docker学习笔记.初识docker(代码片段)

Docker一,惊鸿一瞥二,Docker入门1,运行容器2,简单使用3,守护式容器4,在容器内部运行进程5,自动重启容器和删除容器6,深入容器三,使用Docker镜像和仓库1,基本镜像操作2,用Docker... 查看详情

docker笔记分享(五)(代码片段)

15个Docker命令在这篇文章中,我们将学习15个DockersCLI命令。如果你还不了解Docker,请查看Docker入门与实战第三版的前几个章节。Docker命令约有十亿个(给或接受十亿个)。Docker文档范围很广泛,但当您刚入门时,文档会非常庞大... 查看详情

docker学习笔记:第2节docker使用入门(代码片段)

 运行一个新的容器:dockerrun-ti--namesecondubuntu:16.04bash命令解释:Dockerrun是从一个镜像运行一个容器的指令。-ti参数的含义是:terminalinteractive,这个参数可以让我们进入容器的交互式终端。--name指定容器的名字࿰... 查看详情

docker入门详细笔记(代码片段)

这个笔记是狂神说的docker基础篇视频的对应的笔记:https://www.bilibili.com/video/BV1og4y1q7M4进阶视频:https://www.bilibili.com/video/BV1kv411q7Qc转载链接:OddfarNote;有一说一,他们的博客是真滴好看也可参考:http 查看详情

docker入门详细笔记(代码片段)

这个笔记是狂神说的docker基础篇视频的对应的笔记:https://www.bilibili.com/video/BV1og4y1q7M4进阶视频:https://www.bilibili.com/video/BV1kv411q7Qc转载链接:OddfarNote;有一说一,他们的博客是真滴好看也可参考:http 查看详情

docker入门-学习笔记

这两天入门下Docker的容器技术,感觉挺实用的,所以记录下学习心得。Docker是什么?  要了解它是什么,第一步要做的是什么,还用问~,当然是先去官网瞧瞧啊。很明显啊,DockeristheleadingContainersAsaServiceplatform.英语不好,别... 查看详情

docker学习笔记(代码片段)

Docker概述类似集装箱隔离,jar—容器(mysql,redis)----发布到仓库-----从仓库下载Docker历史2010年dotcloud公司成立2013Docker开源2014年4月9日,Docker1.0发布在此之前都是用的虚拟机基于go语言开发Docker安装#卸载旧版本yumremo... 查看详情

十分钟了解docker(我的docker学习笔记)(代码片段)

Docker学习笔记碎碎念背景知识Docker是什么Docker有什么用Docker原理Docker实践InstallDockerEngineonUbuntu常用命令操作实践镜像相关容器相关Docker作业练习学习参考资料碎碎念最近再学云原生技术与应用,之前没接触过,所以打算... 查看详情

docker学习笔记-安装(代码片段)

Docker学习笔记基础概念/名词解释准备工作安装启动Docker服务Docker常用命令卸载参考资料基础概念/名词解释名词说明image镜像docker封装好的一个模板,里面是一个可运行的服务,以及运行此服务所需要的依赖环境。container... 查看详情

docker学习笔记-安装(代码片段)

Docker学习笔记基础概念/名词解释准备工作安装启动Docker服务Docker常用命令卸载参考资料基础概念/名词解释名词说明image镜像docker封装好的一个模板,里面是一个可运行的服务,以及运行此服务所需要的依赖环境。container... 查看详情

docker学习笔记总结(代码片段)

文章目录1.卸载docker服务步骤(实用!!)2.docker私有库3.容器数据卷的使用4.容器卷和主机互通互联5.容器卷ro和rw读写规则6.卷的继承和共享7.docker安装tomcat8.docker安装mysql8.1运行mysql容器8.2dockermysql容器卷配置(非常重要)8.3docke... 查看详情

docker学习笔记总结(代码片段)

文章目录1.docker简介2.docker的三个组成3.docker的工作原理4.centos系统上安装docker5.阿里云镜像加速器6.dockerrun命令执行流程7.docker命令7.1帮助启动类命令7.2镜像命令7.3容器命令7.3.1dockerrun命令详解7.3.2dockerps命令详解7.3.3容器服务的一... 查看详情

docker学习笔记——docker管理容器(代码片段)

文章目录Docker管理容器1.容器&镜像&仓库&daemon&client之间的关系2.启动容器3.dockerdaemon管理4.docker命令行5.docker命令行实现容器管理搜索镜像(dockerhub)获取镜像(pull)打包传输镜像启动容器解决docker中的CtenOS8镜像无法使用yum... 查看详情

docker学习笔记——docker管理容器(代码片段)

文章目录Docker管理容器1.容器&镜像&仓库&daemon&client之间的关系2.启动容器3.dockerdaemon管理4.docker命令行5.docker命令行实现容器管理搜索镜像(dockerhub)获取镜像(pull)打包传输镜像启动容器解决docker中的CtenOS8镜像无法使用yum... 查看详情

docker学习笔记总结(代码片段)

文章目录1.dockernetwork简介2.dockernetwork网络模式3.docker底层容器ip和容器映射变化4.dockernetwork4.1bridge模式4.2host模式4.3none模式4.4container模式4.5自定义网络模式5.docker-compose容器编排简介6.compose的下载安装7.compose的几个核心概念8.compose... 查看详情

docker学习笔记(代码片段)

Docker1.安装Docker#1.yum包更新到最新yumupdate-y#2.安装需要的软件包,yum-util提供yun-config-manager功能,另外两个是devicemapper驱动依赖的yuminstall-yyum-utilsdevice-mapper-persistent-datalvm2#3.设置yum源yum-config-manager- 查看详情

docker学习笔记-仓库(代码片段)

Docker仓库是镜像存储、分发、部署的关键,制作好应用程序镜像后上传到仓库,使用Dockerdaemon从仓库拉取后运行,我们可以使用官方共有仓库dockerhub或者搭建私有仓库DockerHub包含众多镜像,无需登录就可以搜索和使用注册DockerHub... 查看详情

docker学习笔记总结(代码片段)

文章目录1.dockernetwork简介2.dockernetwork网络模式3.docker底层容器ip和容器映射变化4.dockernetwork4.1bridge模式4.2host模式4.3none模式4.4container模式4.5自定义网络模式5.docker-compose容器编排简介6.compose的下载安装7.compose的几个核心概念8.compose... 查看详情