Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Docker入门 #9

Open
zjs1224522500 opened this issue Mar 8, 2019 · 0 comments
Open

Docker入门 #9

zjs1224522500 opened this issue Mar 8, 2019 · 0 comments

Comments

@zjs1224522500
Copy link
Owner


title: 'Docker入门笔记'
date: 2017-10-24 20:32:20
tags: 服务器

1、什么是Docker?

Docker是一个开源的引擎,可以轻松的为任何应用创建一个轻量级的、可移植的、自给自足的容器。开发者在笔记本上编译测试通过的容器可以批量地在生产环境中部署,包括VMs(虚拟机)bare metalOpenStack 集群和其他的基础应用平台。

2、Docker的组成

Docker系统有两个程序:docker服务端和docker客户端。其中docker服务端是一个服务进程,管理着所有的容器。docker客户端则扮演着docker服务端的远程控制器,可以用来控制docker的服务端进程。大部分情况下,docker服务端和客户端运行在一台机器上。

3、Docker在容器中安装新的程序

  • 在使用docker run 镜像名称 要执行的命令时,对于要执行的命令,有的可能存在需要交互的情况,即需要用户输入命令来进行确认,例如apt-get,但在docker环境中是无法响应这种交互的,故常常需要加上些参数,例如apt-get -y,来省略交互过程。

4、保存对容器的修改

docker commit id 容器

  • 当你对某一个容器做了修改之后(通过在容器中运行某一个命令),可以把对容器的修改保存下来,这样下次可以从保存后的最新状态运行该容器。docker中保存状态的过程称之为committing,它保存的新旧状态之间的区别,从而产生一个新的版本。
  • 对于commit过程中id,需要先使用docker ps -l命令获得安装完ping命令之后的容器id。`
  • 无需拷贝完整的id,通常来讲最开始的三至四个字母即可区分。(非常类似git里面的版本号)
  • 执行完后,会返回新版本镜像的id号。通过使用dockr images命令可查看最近的镜像版本
  • 提交前需要停止容器

5、创建镜像

  • 当我们从docker镜像仓库中下载的镜像不能满足我们的需求时,我们可以通过以下两种方式对镜像进行更改。
    • 1.从已经创建的容器中更新镜像,并且提交这个镜像
    • 2.使用 Dockerfile 指令来创建一个新的镜像

6、构建镜像

  • 从零开始来创建一个新的镜像。为此,我们需要创建一个 Dockerfile 文件,其中包含一组指令来告诉 Docker 如何构建我们的镜像。
runoob@runoob:~$ cat Dockerfile 
FROM    centos:6.7
MAINTAINER      Fisher "[email protected]"

RUN     /bin/echo 'root:123456' |chpasswd
RUN     useradd runoob
RUN     /bin/echo 'runoob:123456' |chpasswd
RUN     /bin/echo -e "LANG=\"en_US.UTF-8\"" >/etc/default/local
EXPOSE  22
EXPOSE  80
CMD     /usr/sbin/sshd -D
  • 每一个指令都会在镜像上创建一个新的层,每一个指令的前缀都必须是大写的。
  • 第一条FROM,指定使用哪个镜像源
  • RUN 指令告诉docker在镜像内执行命令,安装了什么。然后,我们使用 Dockerfile 文件,通过 docker build 命令来构建一个镜像。

title: 'Docker常用命令'
date: 2017-10-24 20:32:20
tags: 服务器

1、安装与启动、更新

  • 安装Docker : apt-get install -y docker.io
  • 启动Docker : systemctl start docker
  • 运行系统引导时启用 docker: systemctl enable docker
  • 核对Docker版本:docker version
  • 更新Dockerdocker-machine upgrade default

2、镜像、容器相关

镜像 images

  • 查看安装的镜像imagedocker images

  • 搜索可用的Docker镜像:docker search 镜像名字

  • 运行镜像:docker run 镜像名称 要执行的命令

    • 指定参数 -d 让容器在后台运行
    • -P 将容器内部使用的网络端口映射到我们的主机上
    • -p 绑定指定端口 -p 5000:5000-p 127.0.0.1:5001:5002
    • -t:在新容器内指定一个伪终端或终端。
    • -i:允许你对容器内的标准输入 (STDIN) 进行交互。
    • --name:为容器命名

> docker run -p 8080:80 --name nginx_web -it hub.c.163.com/library/nginx

  • dockerhubpull镜像:docker pull 镜像名称

  • 构建镜像:docker build 镜像名

docker build -t runoob/centos:6.7 .
- -t :指定要创建的目标镜像名
- . :Dockerfile 文件所在目录,可以指定Dockerfile 的绝对路径

  • 设置镜像标签:docker tag 镜像ID 镜像名:标签

  • 删除镜像:docker rmi 镜像名称

容器 containers

  • 查看运行的容器containerdocker ps

    • -l:查询最后一次创建的容器
    • -a:查看所有容器
  • 查看容器的详细信息(JSON格式):docker inspect 容器编号

  • 提交容器修改:docker commit id 容器

docker commit -m="has update" -a="runoob" e218edb10161 runoob/ubuntu:v2
-m 提交的描述信息
-a 指定镜像作者

  • 停止容器:docker stop 容器名 或 容器ID

  • 查看指定容器的某个确定端口映射到宿主机的端口号:docker port 容器ID或容器名

  • 查看指定容器的标准输出:docker logs 容器ID或容器名

  • 查看容器内部运行的进程:docker top 容器ID或容器名

  • 删除指定的容器:docker rm 容器名或容器编号

  • 进入后台容器并提供bash: docker exec -it 容器名 或 容器编号 bash

    • -itrun命令中的-it一致
  • 退出容器: Ctrl + Dexit

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant