docker入门指导

码林苔藓
• 阅读 2779

验证安装

docker run hello-world

# 分析上面指令结构:
# docker: 告诉操作系统,正在使用docker程序
# run: 子指令,创建并运行容器
# hello-world: 告诉docker哪个image被导入容器

打印如下:
docker入门指导
完美,你的电脑上已经成功安装docker了。现在我们开始了解第一个概念:容器。按照下面的操作来,先有个感官的认识,稍后会详细解释容器。

查看container

从上面的指令可以知道,我们的docker已经安装成功了。我们可以用下面的命令查看自己正在运行的容器:

docker ps  //显示所有正在运行的容器

当然,也可能显示没有正在运行的容器(刚开始安装,还没有运行任何容器)。我们给它加个参数就能查看所有容器,包括没有运行的、正在运行的和运行过的。如下:

docker ps -a

结果图:
docker入门指导
这样就可以看到所有的容器,你一定能找到 hello-world这个运行过的容器。

镜像

镜像,就是一个文件系统,查看自己local的镜像命令:

docker images   //显示的是本地镜像

镜像保存到本地的好处:当加载image的时候,会直接在本地加载,不用去远程下载。节省时间,节省宽带。查找镜像地址: https://store.docker.com/comm...

镜像和容器的区别:容器只是镜像的一个实例,镜像被加载只是创建了一个实例。我们通过上面指令查看镜像,显示的可能比容器(docker ps -a) 要多。因为还有一些镜像只是下载在本地,却没有被加载,好比maven有个本地仓库。

删除容器

docker rm [id/name]

#删除所有
docker rm `docker ps -a -q`  #-q表示只返回容器的id

需要注意的是:上面的命令只是删除容器,不是删除镜像。

构建自己的镜像

首先创建一个Dockerfile文件,这个文件是一个菜单。由files,environment,commonds 来构建一个images.

创建一个mydocker文件夹

mkdir mydocker
// 进入该目录下
cd mydocker

在新建目录下创建Dockerfile文件

touch Dcokerfile
//用vim打开编辑
vim Dockerfile

开始编写Dockerfile

  • 下面FROM指令的意思是,告诉Docker你要基于哪个镜像进行构建

FORM docker/whalesay:latest
  • 下面RUN指令,给镜像安装一个软件fortunes(因为whalesay是基于ubuntu的,所以下面可以执行一些对象的指令)

RUN apt-get -y update && apt-get install fortunes 
  • 下面的CMD指令, 告诉镜像(这里是指成功后的镜像)最后需要去运行的指令

CMD /usr/games/fortune -a | cowsay

好了,一切就绪。开始构建吧!

在Dockerfile同级目录下运行,用docker build 来构建,-t (tag)是给镜像一个tag,方便后面运行。表示Dockerfile在当前目录下

docker build -t robin-whale .

我们可以看看执行的打印输出,可以了解下详细的执行过程,成功会打印输出:Successfully built c5857....

查看下自己构建的镜像

还记得怎么查看吗?对,你猜对了!就是用images来查看

docker images   

docker入门指导
可以看到第一行,就是我们刚刚构建的镜像。

Docker Hub

注册一个Docker Hub账户

这里创建账号

创建仓库

注册账号后,登陆。在自己的主页面,点击 create Repository创建一个自己的仓库。
docker入门指导

Visibility 这里选择public,这样才能分享给他人使用,我们是要拥抱开源。

给你的images打上你的标志

在上传镜像之前,先给你的images打上你自己的标签吧!证明这是我的images,可能一不小心,你就出名了,哈哈!!!

账户名/镜像:版本

这里[账户名/]就是你的标签,官方给出的是,标签用你的docker hub账户名。给某个镜像打标签用 docker tag

docker tag c58570c0ad0d robinyang0909/robin-whale:latest

//docker tag 镜像id 新标签:版本

再来执行 docker images 看看
docker入门指导
可以看到 robinyang0909/robin-whale这个镜像生成了。再看时间,可以发现,并没有新建一个镜像,只是新建了一个images名,指向了robin-whale这个镜像。

万事俱备,现在可以上传自己的镜像了!你已经迫不及待出名了吗?别慌,先登录下你的账户。

登陆自己的账户

docker login

执行上面命令,然后输入你的账户名和密码,出现 Login Succeeded 登陆成功。

开始push镜像

docker push robinyang0909/robin-whale

docker入门指导

回车,开始push你的镜像,过程估计有点慢,因为docker hub 毕竟不是我们做的,等谁有能力了,你们就去整一个牛逼的开源技术,然后服务器就放在我们自己国家。

push成功后显示结果:
docker入门指导

怎么测试我们push到docker hub上的是一个完整的镜像呢?对,你猜对了!删除本地镜像,然后重新从仓库下载。

删除本地镜像

有的程序员有“洁癖”,不想在自己的电脑放一些没用的东西占内存,比如刚开始下载的 hello-world镜像,我就想删掉!

docker rmi c58570c0ad0d # 你的id肯定跟这里不一样

要是上面的命令删不掉的话,用下面的试试:

docker rmi -f c58570c0ad0d  #强制删除

当然,刚开始学习,你的机器上估计也没有什么重要的镜像,应该都可以删除吧!这里教你一招,清空!慎用!

docker rmi -f `docker images -a -q`

体验下载自己容器的快乐

好了,经理上面的删除镜像,相信你已经删除完那个上传的镜像。开始下载运行自己的镜像吧!怎么做?相信你没有忘记,就在最上面, 对!docker run ..

docker run robinyang0909/robin-whale

记得加上自己账户名,回车,开始下载。估计有点慢,因为我们上传到的是docker hub上,不是国内服务器。
docker入门指导
看到上图的话,说明你自己构建镜像,上传,下载,运行这几步都是成功的!恭喜你成功了迈出了第一步。现在你已经慢慢入门的,可以去说,我会使用docker了,哈哈!

这里再来回想一个问题:上面我们在上传镜像之前对自己的镜像打了tag,为什么要这么做?
在下载自己上传的镜像,相信你已经想到了,如果不加上自己账户名的话,那么大家都上传,要是遇到同名的镜像咋办!下载该下载谁的!加上自己的用户名,就是起一个namespace的作用,类似java里的包名作用。用户名是不会重复的,因为你注册的时候,保证了你的用户名具有唯一性。

点赞
收藏
评论区
推荐文章
Stella981 Stella981
3年前
Docker安装JIRA和Confluence(破解版)
一、准备工作1、docker环境部署2、破解插件:https://gitee.com/pengzhile/atlassianagent(https://gitee.com/pengzhile/atlassianagent)二、安装jira2.1制作Docker破解容器编写Dockerfile文件:FROMcptac
Stella981 Stella981
3年前
Docker容器使用jenkins部署web项目
(1)需要安装Docker容器,在Docker容器内安装jenkins,gogs,tomcat。  新建maven项目,添加findbugsplugin。使用docker启动jenkins,gogs,Tomcat的命令gogs:dockerrunitdp10022:22p10080:3000restarta
Stella981 Stella981
3年前
Docker Compose安装
1.Docker社区开发了很多工具,用于对多个docker容器进行编配。编配的过程实际上就是管理运行在多个docker容器里面的应用,而这些docker容器可能运行在多个不同的宿主机上。2.DockerCompose是一个比较简单的docker容器的编配工具,以前的名称叫Fig,由Orchard团队开发的开源Docker编配工具,在2014年被Do
Stella981 Stella981
3年前
Docker容器化【Docker镜像与容器相关命令】
\Docker学习目标:掌握Docker基础知识,能够理解Docker镜像与容器的概念完成Docker安装与启动掌握Docker镜像与容器相关命令掌握TomcatNginx等软件的常用应用的安装掌握docker迁移与备份相关命令能够运用Dockerfile编写创建容器的脚本能
Stella981 Stella981
3年前
Docker:dockerfile构建php项目 [八]
一、把项目封装成docker镜像的步骤把项目封装成docker镜像的步骤:1、先运行一个基础容器,手动制作docker镜像2、编写dockerfile,构建镜像3、测试运行二、dockerfile常用指令参考1、dockerfile常用指令:
Stella981 Stella981
3年前
Dockerfile中的expose到底有啥用
如题,看过Dockerfile常识的肯定都知道这个EXPOSE指令是暴露容器的端口。docker run的时候指定 P 或者p将容器的端口映射到宿主机上。这样外界访问宿主机就可以获取到容器提供的服务了。\P命令可以结合这个dockerfile文件中的EXPOSE暴露的端口。会将容器中的EXPOSE端口随机映射到宿主机的端口。实际
Stella981 Stella981
3年前
Docker面试题
1\.docker如何查看镜像支持的环境变量?   dockerrunIMAFGEenv2\.在使用dockercreate命令创建容器或使用dockerrun创建并运行容器的时候。可以使用m|memory参数来调整容器使用内存的大小。   正确3\.docker需要查询日志应该使用什么命令?   docker
Stella981 Stella981
3年前
Docker 容器健康检查
!DOCKERHEALTHCHECK(https://imgblog.csdnimg.cn/20210120134741738.jpg)Docker容器健康检查指的是在Dockerfile中使用HEALTHCHECK指令对容器的运行状态进行检查,并在dockerps的STATUS栏显示healthy/unhealt
Stella981 Stella981
3年前
Docker概念与实际操作
Docker结构图!(https://oscimg.oschina.net/oscnet/25efceb484c7172197efffcba416b900eb6.jpg)Image(镜像):用于创建Docker容器的模板Container(容器):装载一个或多个应用运行Clie
Stella981 Stella981
3年前
Docker安全
我们知道dockerrun命令可以用来运行容器。那运行这个命令后,Docker做了哪些具体的工作呢?具体如下:1.dockerrun命令初始化。2.Docker运行lxcstart来执行run命令。3.lxcstart在容器中创建了一组namespace和ControlGroups。namespace是隔离的第一
Stella981 Stella981
3年前
Dockerfile ENV 使用指南
!docs.docker.com(https://imgblog.csdnimg.cn/20210124161800640.png)当使用Dockerfile进行构建镜像时,有时会需要设置容器内的环境变量。ENV指令的格式如下:ENV<key<value...ENV指令将环境变量<key
码林苔藓
码林苔藓
Lv1
雁来音信无凭,路遥归梦难成。
文章
5
粉丝
0
获赞
0