docker中文
docker中文指南
docker hub
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 image rm [imageName]//移除image镜像imageName就是镜像的名字
docker image pull hello-world //下载镜像
[root@localhost ~]# docker container ls
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
53890a5137eb ubuntu "bash" 10 seconds ago Up 8 seconds stoic_yonath
Dockerfile
文件,里面是build image的命令。上面命令的各个参数含义如下:
-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 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目录
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 [email protected]
[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 .