Docker操作指南
创始人
2024-05-30 03:27:27
0

Docker操作指南

概念解释:

镜像(Image):Docker将应用程序及其所需的依赖、函数库、环境、配置等文件打包在一起供运行启动,称为镜像。

容器(Container):镜像中的应用程序运行后形成的进程就是容器,容器之间是隔离,容器对外也是不可见的

镜像托管平台(DockerHub):DockerHub是一个Docker镜像的托管平台。这样的平台称为Docker Registry。国内的网易云镜像服务、阿里云镜像库等都是类似的作用

ps:docker的环境安装可自行看官网,这里不做赘述了

  • 第一阶段—镜像初始化:

docker pull:拉取镜像
docker push:推送镜像
docker images:查看镜像列表
docker rmi:删除镜像
docker save:打包镜像成tar包
docker load:加载tar镜像包

  • 第二阶段—启停阶段

docker run:创建并运行一个容器,处于运行状态
docker rm:删除一个容器
docker start:让一个停止的容器再次运行
docker stop:停止一个运行的容器
docker pause:让一个运行的容器暂停
docker unpause:让一个容器从暂停状态恢复运行

  • 第三阶段—过程管理

docker exec:进入容器内
docker logs:查看容器日志
docker ps:查看docker进程
docker --help:查看命令帮助

以Nginx安装作为案例讲解

1.镜像拉取

(1)在DockerHub上拉取Nginx镜像
(地址:https://hub.docker.com/_/nginx)
搜索Nginx,使用docker pull nginx不带tag,则默认为拉取最新的版本latest
在这里插入图片描述
(2)进入服务器拉取镜像
命令:docker pull nginx

[root@dev02 ~]docker pull nginx
Using default tag: latest
latest: Pulling from library/nginx
a2abf6c4d29d: Pull complete 
a9edb18cadd1: Pull complete 
589b7251471a: Pull complete 
186b1aaa4aa6: Pull complete 
b4df32aa5a72: Pull complete 
a0bcbecc962e: Pull complete 
Digest: sha256:0d17b565c37bcbd895e9d92315a05c1c3c9a29f762b011a10c54a66cd53c9b31
Status: Downloaded newer image for nginx:latest
docker.io/library/nginx:latest

(3)查看镜像
命令:docker images

[root@dev02 ~] docker images
REPOSITORY   TAG       IMAGE ID       CREATED         SIZE
nginx        latest    605c77e624dd   14 months ago   141MB

如果要删除无用的镜像,可执行下命令(强删除)

[root@dev02 ~]docker rmi -f 605c77e624dd

2.容器部署与查看

a.容器启动
命令:docker run --name [容器名称] -p [宿主机端口]:[容器端口] -d nginx

[root@dev02 ~] docker run --name mynginx -p 80:80 -d nginx
8103e1281a9a814de051d045b82153ac41a3a3b19b5220e324f0b2328341f92d

命令解读:
docker run :创建并运行一个容器
–name : 给容器确定个名字一个名字,案例命名为mynginx
-p :将宿主机端口与容器端口映射,冒号左侧是宿主机端口,右侧是容器端口
-d:后台运行容器
nginx:镜像名称,案例用nginx
b.容器查看:

[root@dev02 ~]19 docker ps -a
CONTAINER ID   IMAGE     COMMAND                  CREATED         STATUS         PORTS                NAMES
8103e1281a9a   nginx     "/docker-entrypoint.…"   4 minutes ago   Up 4 minutes   0.0.0.0:80->80/tcp   mynginx

此时可访问主机ip,显示为nginx index主页则启动成功
在这里插入图片描述

3.查看容器日志

命令:docker logs [容器id]

[root@dev02 ~]21 docker ps
CONTAINER ID   IMAGE     COMMAND                  CREATED          STATUS          PORTS                NAMES
8103e1281a9a   nginx     "/docker-entrypoint.…"   10 minutes ago   Up 10 minutes   0.0.0.0:80->80/tcp   mynginx
[root@dev02 ~]22 docker logs 8103e1281a9a
/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
2023/03/06 09:21:43 [notice] 1#1: using the "epoll" event method
2023/03/06 09:21:43 [notice] 1#1: nginx/1.21.5
2023/03/06 09:21:43 [notice] 1#1: built by gcc 10.2.1 20210110 (Debian 10.2.1-6) 
2023/03/06 09:21:43 [notice] 1#1: OS: Linux 3.10.0-1062.el7.x86_64
2023/03/06 09:21:43 [notice] 1#1: getrlimit(RLIMIT_NOFILE): 1048576:1048576
2023/03/06 09:21:43 [notice] 1#1: start worker processes

ps:如果要跟踪日志实时输出,可在命名上加参数-f
如 docker logs 8103e1281a9a -f

4.进入容器内部

命令:docker exec -it [容器名] [要执行的命令]

[root@dev02 ~] docker exec -it mynginx bash
root@8103e1281a9a:/# 

命令解读:
docker exec :进入容器内部,执行一个命令
-it : 给当前进入的容器创建一个标准输入、输出终端,允许我们与容器交互
mynginx :要进入的容器的名称
bash:进入容器后执行的命令,bash是一个linux终端交互命令
ps:进入容器后,可按需操作

到此流程基本完结

备注:docker命令参数无需一一记住,用好–help
如:
demo1:查看docker save 的指令说明

[root@dev02 ~]1 docker save --helpUsage:  docker save [OPTIONS] IMAGE [IMAGE...]Save one or more images to a tar archive (streamed to STDOUT by default)Options:-o, --output string   Write to a file, instead of STDOU

demo2:查看docker所有的指令说明

[root@zhdc-ibms-dev02 ~]2 docker --helpUsage:  docker [OPTIONS] COMMANDA self-sufficient runtime for containersOptions:--config string      Location of client config files (default "/root/.docker")-c, --context string     Name of the context to use to connect to the daemon (overrides DOCKER_HOST env var and default context set with"docker context use")-D, --debug              Enable debug mode-H, --host list          Daemon socket(s) to connect to-l, --log-level string   Set the logging level ("debug"|"info"|"warn"|"error"|"fatal") (default "info")--tls                Use TLS; implied by --tlsverify--tlscacert string   Trust certs signed only by this CA (default "/root/.docker/ca.pem")--tlscert string     Path to TLS certificate file (default "/root/.docker/cert.pem")--tlskey string      Path to TLS key file (default "/root/.docker/key.pem")--tlsverify          Use TLS and verify the remote-v, --version            Print version information and quitManagement Commands:app*        Docker App (Docker Inc., v0.9.1-beta3)builder     Manage buildsbuildx*     Docker Buildx (Docker Inc., v0.8.2-docker)config      Manage Docker configscontainer   Manage containers......省略

------编辑者:梦想的边缘

相关内容

热门资讯

【NI Multisim 14...   目录 序言 一、工具栏 🍊1.“标准”工具栏 🍊 2.视图工具...
银河麒麟V10SP1高级服务器... 银河麒麟高级服务器操作系统简介: 银河麒麟高级服务器操作系统V10是针对企业级关键业务...
不能访问光猫的的管理页面 光猫是现代家庭宽带网络的重要组成部分,它可以提供高速稳定的网络连接。但是,有时候我们会遇到不能访问光...
AWSECS:访问外部网络时出... 如果您在AWS ECS中部署了应用程序,并且该应用程序需要访问外部网络,但是无法正常访问,可能是因为...
Android|无法访问或保存... 这个问题可能是由于权限设置不正确导致的。您需要在应用程序清单文件中添加以下代码来请求适当的权限:此外...
北信源内网安全管理卸载 北信源内网安全管理是一款网络安全管理软件,主要用于保护内网安全。在日常使用过程中,卸载该软件是一种常...
AWSElasticBeans... 在Dockerfile中手动配置nginx反向代理。例如,在Dockerfile中添加以下代码:FR...
AsusVivobook无法开... 首先,我们可以尝试重置BIOS(Basic Input/Output System)来解决这个问题。...
ASM贪吃蛇游戏-解决错误的问... 要解决ASM贪吃蛇游戏中的错误问题,你可以按照以下步骤进行:首先,确定错误的具体表现和问题所在。在贪...
月入8000+的steam搬砖... 大家好,我是阿阳 今天要给大家介绍的是 steam 游戏搬砖项目,目前...