Docker 笔记(一)

学习网站

docker中文
docker中文指南
docker hub
docker 中文网
阮一峰的网络日志

Docker组成部分
  • Docker Client : Docker提供给用户的客户端。Docker Client提供给用户一个终端,用户输入Docker提供的命令来管理本地或者远程的服务器。

  • Docker Daemon : Docker服务的守护进程。每台服务器(物理机或虚机)上只要安装了Docker的环境,基本上就跑了一个后台程序Docker Daemon,Docker Daemon会接收Docker Client发过来的指令,并对服务器的进行具体操作。

  • Docker Images : 俗称Docker的镜像,这个可难懂了。你暂时可以认为这个就像我们要给电脑装系统用的系统CD盘,里面有操作系统的程序,并且还有一些CD盘在系统的基础上安装了必要的软件,做成的一张 “只读” 的CD。

  • Docker Registry : 这个可认为是Docker Images的仓库,就像git的仓库一样,用来管理Docker镜像的,提供了Docker镜像的上传、下载和浏览等功能,并且提供安全的账号管理可以管理只有自己可见的私人image。就像git的仓库一样,docker也提供了官方的Registry,叫做docker Hub

  • Docker Container : 俗称Docker的容器,这个是最关键的东西了。Docker Container是真正跑项目程序、消耗机器资源、提供服务的地方,Docker Container通过Docker Images启动,在Docker Images的基础上运行你需要的代码。 你可以认为Docker Container提供了系统硬件环境,然后使用了Docker Images这些制作好的系统盘,再加上你的项目代码,跑起来就可以提供服务了。 听到这里,可能你会觉得是不是有点像一个VM利用保存的备份或者快照跑起来环境一样,其实是挺像的,但是实际上是有本质的区别,后面我会细说。

相关网址:
docker中文网docker的image默认镜像在美国地区,为方便下载,可以使用中文网站里面的镜像加速地址。
下载镜像的时候指定镜像地址:
例:
docker pull registry.docker-cn.com/library/ubuntu:16.04(这里在下载的时候需要指定你下载的镜像全路劲,一般全路劲由归属组和镜像文件名、版本号组成,即:library+ubuntu+16.04)
[root@localhost ~]# docker container run -it ubuntu bash

docker常用命令
  • docker version
  • docker info
  • service docker start || systemctl start docker(centos7使用systemctl代替service,但是service也还能用,会自动创建软连接。)
  • docker image ls //列出所有的image镜像
  • docker image rm [imageName]//移除image镜像imageName就是镜像的名字

    • 例:可以指定特定的版本进行删除
    • [root@localhost ~]# docker image rm registry.docker-cn.com/library/ubuntu:16.04
  • docker image pull hello-world //下载镜像

  • docker container run hello-world //运行docker
  • docker container run -it ubuntu bash(run后面可以添加参数,可用docker run –help 查看,ubuntu后面的bash命令是由ubuntu这个镜像提供的)
  • docker container kill [containID] //通过命令docker container ls来查看正在运行的容器
[root@localhost ~]# docker container ls
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
53890a5137eb        ubuntu              "bash"              10 seconds ago      Up 8 seconds                            stoic_yonath
  • docker container ls –all 列出本机所有容器,包括终止运行的容器
  • docker container ls 列出本机正在运行的容器
  • docker image build -t koa-demo /root/koa-demos || docker image build就是构建命令,-t是指定名字,koa-demo就是起的名字,后面的/root/koa-demos的打包的路劲,这个路劲里面需要包含Dockerfile文件,里面是build image的命令。
  • dockercontainerrunp8000:3000itkoademo/bin/bash d o c k e r c o n t a i n e r r u n − p 8000 : 3000 − i t k o a − d e m o / b i n / b a s h 或 者 docker container run -p 8000:3000 -it koa-demo:0.0.1 /bin/bash
上面命令的各个参数含义如下:
-p参数:容器的 3000 端口映射到本机的 8000 端口。
-it参数:容器的 Shell 映射到当前的 Shell,然后你在本机窗口输入的命令,就会传入容器。
koa-demo:0.0.1:image 文件的名字(如果有标签,还需要提供标签,默认是 latest 标签)。
/bin/bash:容器启动以后,内部第一个执行的命令。这里是启动 Bash,保证用户可以使用 Shell。
如果一切正常,运行上面的命令以后,就会返回一个命令行提示符。
root@66d80f4aaf1e:/app#
这表示你已经在容器里面了,返回的提示符就是容器内部的 Shell 提示符。执行下面的命令。
root@66d80f4aaf1e:/app# node demos/01.js
这时,Koa 框架已经运行起来了。打开本机的浏览器,访问 http://127.0.0.1:8000,
docker的其他命令

docker container start

前面的docker container run命令是新建容器,每运行一次,就会新建一个容器。同样的命令运行两次,就会生成两个一模一样的容器文件。如果希望重复使用容器,就要使用docker container start命令,它用来启动已经生成、已经停止运行的容器文件。
例:docker container start [containerID]

docker container stop

前面的docker container kill命令终止容器运行,相当于向容器里面的主进程发出 SIGKILL 信号。而docker container stop命令也是用来终止容器运行,相当于向容器里面的主进程发出 SIGTERM 信号,然后过一段时间再发出 SIGKILL 信号。
例子:docker container stop [containerID]

这两个信号的差别是,应用程序收到 SIGTERM 信号以后,可以自行进行收尾清理工作,但也可以不理会这个信号。如果收到 SIGKILL 信号,就会强行立即终止,那些正在进行中的操作会全部丢失。

docker container logs

docker container logs命令用来查看 docker 容器的输出,即容器里面 Shell 的标准输出。如果docker run命令运行容器的时候,没有使用-it参数,就要用这个命令查看输出。
例:docker container logs [containerID]

docker container exec

docker container exec命令用于进入一个正在运行的 docker 容器。如果docker run命令运行容器的时候,没有使用-it参数,就要用这个命令进入容器。一旦进入了容器,就可以在容器的 Shell 执行命令了。
例: docker container exec -it [containerID] /bin/bash

docker container cp

docker container cp命令用于从正在运行的 Docker 容器里面,将文件拷贝到本机。下面是拷贝到当前目录的写法。
例:[root@localhost ~]# docker container cp  0741b3f948f3:/app .
0741b3f948f3:/app就是复制0741b3f948f3下面的app目录

发布image的步骤

1、先去 hub.docker.com 或 cloud.docker.com 注册一个账户。然后,用下面的命令登录,登录的时候需要输入用户名和密码。

docker login

2、接着,为本地的 image 标注用户名和版本。

$ docker image tag [imageName] [username]/[repository]:[tag]
# 实例
$ docker image tag koa-demos:0.0.1 ruanyf/koa-demos:0.0.1

也可以不标注用户名,重新构建一下 image 文件

docker image build -t [username]/[repository]:[tag] .

3、发布

$ docker image push [username]/[repository]:[tag]

[root@localhost ~]# git config –list
[root@localhost ~]# git config –global user.email 1740963193@qq.com
[root@localhost ~]# git config –global user.name madman1990

registry.docker-cn.com


/etc/docker/daemon.json
{
“registry-mirrors”: [“https://registry.docker-cn.com“]
}


docker 默认的配置文件是 /etc/default/docker,如果此目录下不存在 docker 文件,可以自己手动创建一个,将文件中添加内容:

DOCKER_OPTS=” –registry-mirror=https://registry.docker-cn.com


[root@localhost geth]# docker container run -idt gethimage /bin/bash
[root@localhost geth]# docker image build -t gethimage .

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值