容器的基本操作

时间:2021-02-27 12:59:59   收藏:0   阅读:0

什么是docker

docker中的容器:

OCI&OCF

OCI

Open Container-initiative

OCF

打开容器格式

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

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

docker安装以及使用加速器

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

docker的加速有多种方式:

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

首写注册并登入阿里云

技术图片

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

技术图片

 

 

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

技术图片

 

 

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

技术图片

 

 

 重启服务,则完成加速

技术图片

 

 

 

安装及使用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#  

评论(0
© 2014 mamicode.com 版权所有 京ICP备13008772号-2  联系我们:gaon5@hotmail.com
迷上了代码!