ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Docker 镜像、容器操作--小试牛刀

2021-09-04 14:00:51  阅读:162  来源: 互联网

标签:ago -- 小试牛刀 nginx 镜像 docker root Docker latest


文章目录

一、镜像操作

1.1 搜索镜像

docker search 镜像名称 
docker search 镜像名称:标签名称
[root@docker ~]# docker search nginx
NAME                              DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
nginx                             Official build of Nginx.                        15404     [OK]       
jwilder/nginx-proxy               Automated Nginx reverse proxy for docker con…   2063                 [OK]
richarvey/nginx-php-fpm           Container running Nginx + PHP-FPM capable of…   816                  [OK]
jc21/nginx-proxy-manager          Docker container for managing Nginx proxy ho…   240                  
linuxserver/nginx                 An Nginx container, brought to you by LinuxS…   152                  
tiangolo/nginx-rtmp               Docker image with Nginx using the nginx-rtmp…   140                  [OK]
jlesage/nginx-proxy-manager       Docker container for Nginx Proxy Manager        135                  [OK]
alfg/nginx-rtmp                   NGINX, nginx-rtmp-module and FFmpeg from sou…   106                  [OK]
jasonrivers/nginx-rtmp            Docker images to host RTMP streams using NGI…   92                   [OK]
nginxdemos/hello                  NGINX webserver that serves a simple page co…   72                   [OK]
privatebin/nginx-fpm-alpine       PrivateBin running on an Nginx, php-fpm & Al…   56                   [OK]
nginx/nginx-ingress               NGINX and  NGINX Plus Ingress Controllers fo…   55                   
nginxinc/nginx-unprivileged       Unprivileged NGINX Dockerfiles                  47                   
staticfloat/nginx-certbot         Opinionated setup for automatic TLS certs lo…   24                   [OK]
nginx/nginx-prometheus-exporter   NGINX Prometheus Exporter for NGINX and NGIN…   19                   
schmunk42/nginx-redirect          A very simple container to redirect HTTP tra…   19                   [OK]
nginxproxy/nginx-proxy            Automated Nginx reverse proxy for docker con…   19                   
centos/nginx-112-centos7          Platform for running nginx 1.12 or building …   15                   
centos/nginx-18-centos7           Platform for running nginx 1.8 or building n…   13                   
raulr/nginx-wordpress             Nginx front-end for the official wordpress:f…   13                   [OK]
flashspys/nginx-static            Super Lightweight Nginx Image                   10                   [OK]
mailu/nginx                       Mailu nginx frontend                            9                    [OK]
sophos/nginx-vts-exporter         Simple server that scrapes Nginx vts stats a…   7                    [OK]
ansibleplaybookbundle/nginx-apb   An APB to deploy NGINX                          2                    [OK]
wodby/nginx                       Generic nginx                                   1                    [OK]
[root@docker ~]# 

1.2 下载镜像

docker pull 镜像名称
[root@docker ~]# docker pull nginx
Using default tag: latest //如果下载时不指定标签,会默认下载最新的镜像,latest表示最新
latest: Pulling from library/nginx
a330b6cecb98: Pull complete 
5ef80e6f29b5: Pull complete 
f699b0db74e3: Pull complete 
0f701a34c55e: Pull complete 
3229dce7b89c: Pull complete 
ddb78cb2d047: Pull complete 
Digest: sha256:c442ff5a3d9f6dc92dd8aee388ece42d965e002805e3edaaff34e79d8ee6d0a4
Status: Downloaded newer image for nginx:latest
docker.io/library/nginx:latest
[root@docker ~]# 

1.3 镜像打标签

docker tag 镜像名称:旧标签名 镜像名称:新标签名
[root@docker ~]# docker images  //查看镜像列表
REPOSITORY   TAG       IMAGE ID       CREATED          SIZE
nginx        latest    822b7ec2aaf2   54 minutes ago   133MB
[root@docker ~]# docker tag nginx:latest nginx:lnmp
[root@docker ~]# docker images
REPOSITORY   TAG       IMAGE ID       CREATED          SIZE
nginx        latest    822b7ec2aaf2   55 minutes ago   133MB
nginx        lnmp      822b7ec2aaf2   55 minutes ago   133MB
[root@docker ~]# 

1.4 查看镜像信息

docker inspect 镜像id
[root@docker ~]# docker inspect 822b7ec2aaf2
[
    {
        "Id": "sha256:822b7ec2aaf2122b8f80f9c7f45ca62ea3379bf33af4e042b67aafbf6eac1941",
        "RepoTags": [
            "nginx:latest"
        ],
        "RepoDigests": [],
        "Parent": "",
        "Comment": "",
        "Created": "2021-09-03T07:40:16.355730864Z",
        "Container": "367d32086ac12447d36e75c9b7acbe1b5156a34a91370b9200e68783be75506c",
        "ContainerConfig": {
            "Hostname": "367d32086ac1",
            "Domainname": "",
            "User": "",
            "AttachStdin": false,
            "AttachStdout": false,
            "AttachStderr": false,
            "ExposedPorts": {
                "80/tcp": {}
            },
            "Tty": false,
            "OpenStdin": false,
            "StdinOnce": false,
            "Env": [
                "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
                "NGINX_VERSION=1.21.1",
                "NJS_VERSION=0.6.1",
                "PKG_RELEASE=1~buster"
            ],
            "Cmd": [
                "/bin/sh",
                "-c",
                "#(nop) ",
                "CMD [\"nginx\" \"-g\" \"daemon off;\"]"
            ],
......省略部分内容
[root@docker ~]# 

1.5 删除镜像

docker rmi 镜像ID 或者 镜像名称:标签名
[root@docker ~]# docker rmi 822b7ec2aaf2
Error response from daemon: conflict: unable to delete 822b7ec2aaf2 (must be forced) - image is referenced in multiple repositories  //错误信息说:冲突:无法删除822b7ec2aaf2(必须强制)-映像在多个存储库中被引用
//如果想要删除该镜像,使用docker rmi 镜像名称:标签名 的方式一个一个的删除
[root@docker ~]# 
[root@docker ~]# docker rmi nginx:lnmp
Untagged: nginx:lnmp
[root@docker ~]# docker rmi nginx:latest 
Untagged: nginx:latest //直到没有引用了,才会删除
Untagged: nginx@sha256:c442ff5a3d9f6dc92dd8aee388ece42d965e002805e3edaaff34e79d8ee6d0a4
Deleted: sha256:822b7ec2aaf2122b8f80f9c7f45ca62ea3379bf33af4e042b67aafbf6eac1941
Deleted: sha256:47dec9bde9e483e6265a6f52ab1e726724927e2e9d2ac358fdf58fbfcd6cf418
Deleted: sha256:7920a27f48f198550d59f64681b99441bbc3d2ce4778a855ce1ef9bafc96ae69
Deleted: sha256:a3c5a94eb1ea071c73dcea1969e0b71beea445d3b9d0735eaf6715d8e351434c
Deleted: sha256:e73eb58ed241e67a7a2c8589dde85eb72811eac1eb4cf3b586e40d2b9cc9d0c1
Deleted: sha256:b5d976dc9b0fa380affe1f6a17df18f02ab7debec2d35a0407fb863338591ed7
Deleted: sha256:d000633a56813933cb0ac5ee3246cf7a4c0205db6290018a169d7cb096581046
[root@docker ~]# 

1.6 运行镜像

[root@docker ~]# docker run nginx //一次性运行镜像,在执行run操作的时候,如果没有该镜像,会先下载,在start该镜像
Unable to find image 'nginx:latest' locally //在本地没有发现nginx的镜像
latest: Pulling from library/nginx //没有找到镜像,就去公共仓库下载镜像
a330b6cecb98: Pull complete 
5ef80e6f29b5: Pull complete 
f699b0db74e3: Pull complete 
0f701a34c55e: Pull complete 
3229dce7b89c: Pull complete 
ddb78cb2d047: Pull complete 
Digest: sha256:c442ff5a3d9f6dc92dd8aee388ece42d965e002805e3edaaff34e79d8ee6d0a4
Status: Downloaded newer image for nginx:latest //下载完成
/docker-entrypoint.sh: /docker-entrypoint.d/ is not empty, will attempt to perform configuration
/docker-entrypoint.sh: Looking for shell scripts in /docker-entrypoint.d/
/docker-entrypoint.sh: Launching /docker-entrypoint.d/10-listen-on-ipv6-by-default.sh
10-listen-on-ipv6-by-default.sh: info: Getting the checksum of /etc/nginx/conf.d/default.conf
10-listen-on-ipv6-by-default.sh: info: Enabled listen on IPv6 in /etc/nginx/conf.d/default.conf
/docker-entrypoint.sh: Launching /docker-entrypoint.d/20-envsubst-on-templates.sh
/docker-entrypoint.sh: Launching /docker-entrypoint.d/30-tune-worker-processes.sh
/docker-entrypoint.sh: Configuration complete; ready for start up
2021/09/03 08:52:50 [notice] 1#1: using the "epoll" event method
2021/09/03 08:52:50 [notice] 1#1: nginx/1.21.1
2021/09/03 08:52:50 [notice] 1#1: built by gcc 8.3.0 (Debian 8.3.0-6) 
2021/09/03 08:52:50 [notice] 1#1: OS: Linux 3.10.0-957.el7.x86_64
2021/09/03 08:52:50 [notice] 1#1: getrlimit(RLIMIT_NOFILE): 1048576:1048576
......省略部分内容
2021/09/03 08:52:57 [notice] 1#1: exit //这里执行的是 CTRL+C
[root@docker ~]#

1.7 镜像的导出、导入

[root@docker ~]# docker save -o nginx:latest nginx:latest  //导出镜像
//导出镜像 第一个nginx:latest 表示的导出镜像以后指定的镜像文件名
//导出镜像 第二个nginx:latest 表示的导出哪个镜像
[root@docker ~]# ls           
anaconda-ks.cfg  initial-setup-ks.cfg  nginx:latest  公共  模板  视频  图片  文档  下载  音乐  桌面
[root@docker ~]# 
[root@docker ~]# docker rmi 822b7ec2aaf2 //删除镜像
Untagged: nginx:latest
Untagged: nginx@sha256:c442ff5a3d9f6dc92dd8aee388ece42d965e002805e3edaaff34e79d8ee6d0a4
Deleted: sha256:822b7ec2aaf2122b8f80f9c7f45ca62ea3379bf33af4e042b67aafbf6eac1941
Deleted: sha256:47dec9bde9e483e6265a6f52ab1e726724927e2e9d2ac358fdf58fbfcd6cf418
Deleted: sha256:7920a27f48f198550d59f64681b99441bbc3d2ce4778a855ce1ef9bafc96ae69
Deleted: sha256:a3c5a94eb1ea071c73dcea1969e0b71beea445d3b9d0735eaf6715d8e351434c
Deleted: sha256:e73eb58ed241e67a7a2c8589dde85eb72811eac1eb4cf3b586e40d2b9cc9d0c1
Deleted: sha256:b5d976dc9b0fa380affe1f6a17df18f02ab7debec2d35a0407fb863338591ed7
Deleted: sha256:d000633a56813933cb0ac5ee3246cf7a4c0205db6290018a169d7cb096581046
[root@docker ~]# docker load < nginx\:latest 导入刚刚导出的镜像
d000633a5681: Loading layer [==================================================>]  72.53MB/72.53MB
63b5f2c0d071: Loading layer [==================================================>]  64.86MB/64.86MB
875b5b50454b: Loading layer [==================================================>]  3.072kB/3.072kB
ed94af62a494: Loading layer [==================================================>]  4.096kB/4.096kB
8e58314e4a4f: Loading layer [==================================================>]  3.584kB/3.584kB
d47e4d19ddec: Loading layer [==================================================>]  7.168kB/7.168kB
Loaded image: nginx:latest
[root@docker ~]# docker images 
REPOSITORY   TAG       IMAGE ID       CREATED        SIZE
nginx        latest    822b7ec2aaf2   20 hours ago   133MB
[root@docker ~]# 

二、容器操作

2.1 查看所有容器,包括不是启动状态的容器

[root@docker ~]# docker ps -a
CONTAINER ID   IMAGE     COMMAND                  CREATED         STATUS                     PORTS     NAMES
a4c42a696a49   nginx     "/docker-entrypoint.…"   4 minutes ago   Exited (0) 4 minutes ago             naughty_swanson
[root@docker ~]# 

2.2 查看所有容器的id

[root@docker ~]# docker ps -aq
a4c42a696a49
[root@docker ~]# 

2.3 使容器开启并持续性运行

①:创建容器
docker create -it nginx:latest /bin/bash
-i:让容器的标准输入保持打开
-t:分配一个伪终端
-d:后台守护进程的方式运行
②:启动容器
docker start 容器id

[root@docker ~]# docker create -it nginx:latest /bin/bash
9ba3b6ffd7bf4e2587f415a203f6064432efc331335b0c9519278789a473dff6
[root@docker ~]# docker ps -a //容器id为:9ba3b6ffd7bf 状态为:已创建
CONTAINER ID   IMAGE          COMMAND                  CREATED         STATUS                     PORTS     NAMES
9ba3b6ffd7bf   nginx:latest   "/docker-entrypoint.…"   9 seconds ago   Created                              romantic_banzai
a4c42a696a49   nginx          "/docker-entrypoint.…"   6 minutes ago   Exited (0) 5 minutes ago             romantic_stonebraker
[root@docker ~]# 
[root@docker ~]# docker start 9ba3b6ffd7bf 
9ba3b6ffd7bf
[root@docker ~]# docker ps -a
CONTAINER ID   IMAGE          COMMAND                  CREATED          STATUS                      PORTS     NAMES
9ba3b6ffd7bf   nginx:latest   "/docker-entrypoint.…"   12 minutes ago   Up About a minute           80/tcp    romantic_banzai
a4c42a696a49   nginx          "/docker-entrypoint.…"   18 minutes ago   Exited (0) 17 minutes ago             romantic_stonebraker
[root@docker ~]#
有的时候持续性运行浪费资源,那么一次性执行如下操作
/usr/bin/bash 表示指定镜像运行的环境
-c 表示指定执行什么命令
[root@docker ~]# docker run centos:7 /usr/bin/bash -c ls /
anaconda-post.log
bin
dev
etc
home
lib
......省略部分内容
[root@docker ~]# docker ps -a //可以看出运行centos:7镜像,执行了ls操作之后就退出了
CONTAINER ID   IMAGE          COMMAND                  CREATED          STATUS                      PORTS     NAMES
0f84d97ae586   centos:7       "/usr/bin/bash -c ls…"   32 seconds ago   Exited (0) 31 seconds ago             affectionate_bassi
9ba3b6ffd7bf   nginx:latest   "/docker-entrypoint.…"   15 minutes ago   Up 5 minutes                80/tcp    romantic_banzai
a4c42a696a49   nginx          "/docker-entrypoint.…"   21 minutes ago   Exited (0) 21 minutes ago             romantic_stonebraker
[root@docker ~]# 

2.4 容器的开启、关闭

docker start 容器id
docker stop 容器id

2.5 容器持续后台运行

docker run -d centos:7 /usr/bin/bash -c “while true;do echo hello; done”
-d 表示后台守护进程的方式运行
-c “while true;do echo hello; done” 做了一个死循环,模拟服务持续运行

[root@docker ~]# docker run -d centos:7 /usr/bin/bash -c "while true;do echo hello; done"
c589495b247136e38713f72e81745bdddcd65df7e08311e22215da8354b5f38f
[root@docker ~]# docker ps -a
CONTAINER ID   IMAGE          COMMAND                  CREATED          STATUS                      PORTS     NAMES
c589495b2471   centos:7       "/usr/bin/bash -c 'w…"   32 seconds ago   Up 32 seconds                         kind_wilbur
0f84d97ae586   centos:7       "/usr/bin/bash -c ls…"   13 minutes ago   Exited (0) 13 minutes ago             affectionate_bassi
9ba3b6ffd7bf   nginx:latest   "/docker-entrypoint.…"   28 minutes ago   Up 17 minutes               80/tcp    romantic_banzai
a4c42a696a49   nginx          "/docker-entrypoint.…"   34 minutes ago   Exited (0) 34 minutes ago             romantic_stonebraker
[root@docker ~]# 

2.6 进入容器

①docker run
②docker exec (容器必须是运行状态)

[root@docker ~]# docker run -it centos:7 /bin/bash
[root@795bf77b9a5c /]# ls
anaconda-post.log  bin  dev  etc  home  lib  lib64  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var
[root@795bf77b9a5c /]# exit  //这里使用的是 ctrl + d 组合快捷键退出容器
[root@docker ~]# 
[root@docker ~]# docker ps -a
CONTAINER ID   IMAGE          COMMAND                  CREATED          STATUS                            PORTS     NAMES
795bf77b9a5c   centos:7       "/bin/bash"              2 minutes ago    Exited (127) About a minute ago             happy_wozniak
c589495b2471   centos:7       "/usr/bin/bash -c 'w…"   9 minutes ago    Up 9 minutes                                kind_wilbur
0f84d97ae586   centos:7       "/usr/bin/bash -c ls…"   22 minutes ago   Exited (0) 22 minutes ago                   affectionate_bassi
9ba3b6ffd7bf   nginx:latest   "/docker-entrypoint.…"   37 minutes ago   Up 26 minutes                     80/tcp    romantic_banzai
a4c42a696a49   nginx          "/docker-entrypoint.…"   43 minutes ago   Exited (0) 42 minutes ago                   romantic_stonebraker
[root@docker ~]# docker exec -it c589495b2471 /bin/bash
[root@c589495b2471 /]# ls
anaconda-post.log  bin  dev  etc  home  lib  lib64  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var
[root@c589495b2471 /]# exit //这里是手动输入 exit 退出容器
exit
[root@docker ~]# 

2.7 容器导出、导入

导出:docker export 容器id > 指定导出的容器文件名
导入(两种方式):
① docker import 导出的文件名 指定镜像名称:指定标签名称
② cat 导出的容器文件名 | docker import - 指定镜像名称:指定标签名称

[root@docker ~]# docker export c589495b2471 > centos7_01
[root@docker ~]# ls
anaconda-ks.cfg  centos7_01  initial-setup-ks.cfg  公共  模板  视频  图片  文档  下载  音乐  桌面
[root@docker ~]# docker images
REPOSITORY   TAG       IMAGE ID       CREATED        SIZE
nginx        latest    822b7ec2aaf2   22 hours ago   133MB
centos       7         8652b9f0cb4c   9 months ago   204MB
[root@docker ~]# docker rm -f `docker ps -aq` //强制删除所有容器,这里为了演示容器的导出导入所以这样做,生产环境杜绝使用
795bf77b9a5c
c589495b2471
0f84d97ae586
9ba3b6ffd7bf
a4c42a696a49
[root@docker ~]# docker rmi 8652b9f0cb4c //删除centos:7的镜像文件
Untagged: centos:7
Untagged: centos@sha256:0f4ec88e21daf75124b8a9e5ca03c37a5e937e0e108a255d890492430789b60e
Deleted: sha256:8652b9f0cb4c0599575e5a003f5906876e10c1ceb2ab9fe1786712dac14a50cf
Deleted: sha256:174f5685490326fc0a1c0f5570b8663732189b327007e47ff13d2ca59673db02
[root@docker ~]# docker import centos7_01 centos:7 //导入容器并生成镜像文件,centos:7表示指定的镜像文件名:标签名
sha256:45836fbbddb2c92905b73daf22b56b8b3b3c855d8e2dd4f080937ad47c164b70
[root@docker ~]# docker images //查看是否导入成功
REPOSITORY   TAG       IMAGE ID       CREATED         SIZE
centos       7         45836fbbddb2   8 seconds ago   204MB
nginx        latest    822b7ec2aaf2   22 hours ago    133MB
[root@docker ~]# cat centos7_01 | docker import - centos:latest //另一种导入容器的方式
sha256:dda2c24c44187be74f4d690ad1833a58e3cc643c24a8d1288ccfd74b618a3647
[root@docker ~]# docker images
REPOSITORY   TAG       IMAGE ID       CREATED         SIZE
centos       latest    dda2c24c4418   5 seconds ago   204MB
centos       7         45836fbbddb2   4 minutes ago   204MB
nginx        latest    822b7ec2aaf2   22 hours ago    133MB
[root@docker ~]# 

标签:ago,--,小试牛刀,nginx,镜像,docker,root,Docker,latest
来源: https://blog.csdn.net/qq_35479765/article/details/120081431

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有