码迷,mamicode.com
首页 > 其他好文 > 详细

容器的基本操作

时间:2021-02-27 12:59:59      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:后台运行   animate   off   ext   epo   reg   a10   command   sso   

什么是docker

docker中的容器:

  • lxc --> libcontainer --> runC

OCI&OCF

OCI

Open Container-initiative

  • 由Linux基金会主导于2015年6月创立
  • 旨在围绕容器格式和运行时制定一个开放的工业化标准
  • 包含两种规格

    • 运行时规范(Runtime spec)

    • 图像规格(image-spec)

OCF

打开容器格式

runC是一个CLI工具,用于根据OCI规范生成和运行容器

  • 容器作为runC的子进程启动,并且可以嵌入到各种其他系统中,而无需运行守护进程

  • runC是建立在libcontainer之上的,libcontainer是一种支持数百万Docker引擎安装的容器技术

docker提供了一个专门容纳容器镜像的站点:https://hub.docker.com

 

docker架构

技术图片

 

 

 Docker Damon DockerD用来监听Docker API的请求和管理Docker对象,比如镜像、容器、网络和Volume Docker Client docker client是我们和Docker进行交互的最主要的方式方法,比如可以通过docker run来运行一个容器,然后我们的这个client会把命令发送给上面的DockerDocker Registry 用来存储Docker镜像的仓库,Docker Hub是Docker官方提供的一个公共仓库,而且Docker默认也是从Docker Hub上查找镜像的,当然你也可以很方便的运行一个私有仓库,当我们使用docker pull或者docker run命令时,就会从我们配置的Docker镜像仓库中去拉取镜像,使用docker push命令时,会将我们构建的镜像推送到对应的镜像仓库中 Images 镜像,镜像是一个制度模板,带有Docker容器的说明,一般来说的,镜像会基于另外的一些基础镜像上面安装一个Nginx服务器,这样就可以构建一个属于我们自己的镜像了 Containers 容器,容器是一个镜像的可运行的实例,可以使用Docker REST API或者CLI来操作容器,容器的实质是进程,但与直接在宿主执行的实例进程不同,容器进程属于自己的独立的命名空间。因此容器可以拥有自己的root文件系统、自己的网络配置、自己的进程空间、甚至自己的用户ID。容器内的经常是运行在一个隔离的环境里,使用起来,就好像在一个独立于宿主的系统下操作一样。这种特性使得容器封装的应用比直接在宿主运行更加安全

 

docker镜像与镜像仓库

为什么镜像仓库名字是Registry而不是repository?在docker中仓库的名字是以应用的名称取名的。

技术图片

 

 

 

技术图片

镜像是静态的,而容器是动态的,容器有其生命周期,镜像与容器的关系类似于程序与进程的关系。镜像类似于文件系统中的程序文件,而容器则类似于将一个程序运行起来的状态,也即进程。所以容器是可以删除的,容器被删除后其镜像是不会被删除的。

docker对象

使用docker时,您正在创建和使用图像、容器、网络、卷、插件和其他对象。

  • 图像

    • 图像是一个只读模板,其中包含创建docker容器的说明。

    • 通常,一个图像基于另一个图像,并进行了一些额外的定制。

    • 您可以创建自己的图像,也可以只使用其他人创建并在注册表中发布的图像。

  • 容器

    • conntainer是映像的可运行实例。

    • 您可以使用docker API或CLI创建、运行、停止、移动或删除容器。

    • 您可以将容器连接到一个或多个网络,将存储连接到容器,甚至可以基于其当前状态创建新映像。

安装及使用docker

docker安装以及使用加速器

docker-ce的配置文件是/etc/docker/daemon.json,此文件默认不存在,需要我们手动创建并进行配置,而docker的加速就是通过配置此文件来实现的。

docker的加速有多种方式:

  • docker cn
  • 中国科技大学加速器
  • 阿里云加速器(需要通过阿里云开发者平台注册帐号,免费使用个人私有的加速器)

加速器的使用(拿阿里云的举例)

首写注册并登入阿里云

技术图片

然后点击控制台进入,并找到产品与服务

技术图片

 

 

 再找到容器镜像服务,点击进入

技术图片

 

 

 点击镜像加速器,复制加速网址,将内容写入到操作系统容器里

技术图片

 

 

 重启服务,则完成加速

技术图片

 

 

 

安装及使用docker

docker安装

[root@wang ~]# cd /etc/yum.repos.d/
[root@wang yum.repos.d]# curl -o docker-ce.repo https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/centos/docker-ce.repo

[root@wang yum.repos.d]# yum clean all 

[root@wang yum.repos.d]# yum -y install docker-ce

[root@wang ~]# systemctl enable --now docker.s

docker常用操作

命令功能
docker search Search the Docker Hub for images
docker pull Pull an image or a repository from a registry
docker images List images
docker create Create a new conntainer
docker start Start one or more stopped containers
docker run Run a command in a new container
docker attach Attach to a runninng container
docker ps List containers
docker logs Fetch the logs of a container
docker restart Restart a container
docker stop Stop one or more running containers
docker kill Kill one or more running containers
docker rm Remove onne or more containers
docker exec Run a command in a running container
docker info Display system-wide information
docker inspect Return low-level information on Docker objects

 

 

 

 查找所需的镜像服务

[root@wang ~]# docker search httpd
NAME                                    DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
httpd                                   The Apache HTTP Server Project                  3371      [OK]       
centos/httpd-24-centos7                 Platform for running Apache httpd 2.4 or bui…   36                   
centos/httpd                                                                            33                   [OK]
polinux/httpd-php                       Apache with PHP in Docker (Supervisor, CentO…   4                    [OK]
salim1983hoop/httpd24                   Dockerfile running apache config                2                    [OK]
lead4good/httpd-fpm                     httpd server which connects via fcgi proxy h…   1                    [OK]
inanimate/httpd-ssl                     A play container with httpd, ssl enabled, an…   1                    [OK]
solsson/httpd-openidc                   mod_auth_openidc on official httpd image, ve…   1                    [OK]
jonathanheilmann/httpd-alpine-rewrite   httpd:alpine with enabled mod_rewrite           1                    [OK]
hypoport/httpd-cgi                      httpd-cgi                                       1                    [OK]
dariko/httpd-rproxy-ldap                Apache httpd reverse proxy with LDAP authent…   1                    [OK]
publici/httpd                           httpd:latest                                    1                    [OK]
clearlinux/httpd                        httpd HyperText Transfer Protocol (HTTP) ser…   1                    

下载所需的镜像服务,列出当前的已有镜像

[root@wang ~]# docker pull httpd
[root@wang ~]# docker images 
REPOSITORY   TAG       IMAGE ID       CREATED        SIZE
httpd        latest    683a7aad17d3   6 weeks ago    138MB
ubuntu       latest    f643c72bc252   3 months ago   72.9MB

创建一个新的容器

 [root@wang ~]# docker create httpd:latest 279a36aa80afb84a0282bab135e7e6447cb1e61fbc59da09e41e6f79e8f1b1ff 

查看已有容器,未启用的需要用ps-a查看

[root@wang ~]# docker ps
CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES
[root@wang ~]# docker ps -a
CONTAINER ID   IMAGE          COMMAND              CREATED              STATUS    PORTS     NAMES
279a36aa80af   httpd:latest   "httpd-foreground"   About a minute ago   Created             quirky_goldstine

启用容器

[root@wang ~]# docker ps -a
CONTAINER ID   IMAGE          COMMAND              CREATED  
279a36aa80af   httpd:latest   "httpd-foreground"   About a m
[root@wang ~]# 
[root@wang ~]# docker start 279a36aa80af (启用容器需要指明ID)

停止容器,重启容器

[root@wang ~]# docker stop 279a36aa80af
279a36aa80af
[root@wang ~]# docker restart 279a36aa80af
279a36aa80af
[root@wang ~]# docker ps 
CONTAINER ID   IMAGE          COMMAND              CREATED         STATUS         PORTS     NAMES
279a36aa80af   httpd:latest   "httpd-foreground"   6 minutes ago   Up 2 seconds   80/tcp    quirky_goldstine

杀死容器

[root@wang ~]# docker kill 279a36aa80af
279a36aa80af

[root@wang ~]# docker ps -a
CONTAINER ID   IMAGE          COMMAND              CREATED         STATUS                        PORTS     NAMES
279a36aa80af   httpd:latest   "httpd-foreground"   8 minutes ago   Exited (137) 27 seconds ago             quirky_goldstine

删除容器,进行时无法删除

[root@wang ~]# docker rm 279a36aa80af
279a36aa80af
[root@wang ~]# docker ps -a
CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES

创建容器并启动容器 

 [root@wang ~]# docker run httpd:latest

   -d表示后台运行

 [root@wang ~]# docker run -d httpd:latest  

强制删除容器 (一般不使用)

[root@wang ~]# docker ps 
CONTAINER ID   IMAGE          COMMAND              CREATED              STATUS              PORTS     NAMES
df1821a624ec   httpd:latest   "httpd-foreground"   About a minute ago   Up About a minute   80/tcp    suspicious_chatterjee
[root@wang ~]# docker rm -f df1821a624ec 
df1821a624ec
[root@wang ~]# docker ps -a
CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES

查看容器日志信息

 [root@wang ~]# docker logs 6337f05a10f1  

显示容器系统信息

 [root@wang ~]# docker info 

查看容器详细信息

 [root@wang ~]# docker inspect 6337f05a10f1 

删除镜像方式 ,镜像容器再运行时无法删除

 [root@wang ~]# docker rmi httpd:latest 

进入容器,实时查看容器日志,(无法进行操作,一般不适用)

 [root@wang ~]# docker attach 6337f05a10f1 

进入运行的容器里,查看容器里的配置

 [root@wang ~]# docker exec -it 6337f05a10f1 /bin/bash

root@6337f05a10f1:/usr/local/apache2#  

容器的基本操作

标签:后台运行   animate   off   ext   epo   reg   a10   command   sso   

原文地址:https://www.cnblogs.com/wangming/p/14451674.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!