Docker核心知识手册

Docker核心知识手册

1 安装Docker

1.1 环境说明

[root@VM-24-4-centos ~]# cat /etc/redhat-release
CentOS Linux release 7.6.1810 (Core) 
[root@VM-24-4-centos ~]# uname  -r
3.10.0-1160.108.1.el7.x86_64
[root@VM-24-4-centos ~]# hostname -I
10.0.24.4 

1.2 安装

wget -O /etc/yum.repos.d/docker-ce.repo https://mirrors.ustc.edu.cn/docker-ce/linux/centos/docker-ce.repo
sed -i 's#download.docker.com#mirrors.ustc.edu.cn/docker-ce#g' /etc/yum.repos.d/docker-ce.repo
yum install docker-ce -y

1.3 修改配置

# 修改启动文件,监听远程端口
vim /usr/lib/systemd/system/docker.service
ExecStart=/usr/bin/dockerd -H unix:///var/run/docker.sock -H tcp://10.0.0.100:2375

1.4 启动

systemctl daemon-reload
systemctl enable docker.service
systemctl restart docker.service
# ps -ef检查进行,是否启动

2 Docker基础命令

2.1 查看Docker相关信息

[root@VM-24-4-centos ~]# docker version
Client: Docker Engine - Community
 Version:           26.1.4
 API version:       1.45
 Go version:        go1.21.11
 Git commit:        5650f9b
 Built:             Wed Jun  5 11:32:04 2024
 OS/Arch:           linux/amd64
 Context:           default

Server: Docker Engine - Community
 Engine:
  Version:          26.1.4
  API version:      1.45 (minimum version 1.24)
  Go version:       go1.21.11
  Git commit:       de5c9cf
  Built:            Wed Jun  5 11:31:02 2024
  OS/Arch:          linux/amd64
  Experimental:     false
 containerd:
  Version:          1.6.33
  GitCommit:        d2d58213f83a351ca8f528a95fbd145f5654e957
 runc:
  Version:          1.1.12
  GitCommit:        v1.1.12-0-g51d5e94
 docker-init:
  Version:          0.19.0
  GitCommit:        de40ad0

2.2 配置Docker镜像加速

vi /etc/docker/daemon.json
{
    "registry-mirrors": ["https://registry.docker-cn.com"]
}

3 Docker镜像相关命令

3.1 搜索官方镜像

docker search nginx
NAME                               DESCRIPTION                                     STARS     OFFICIAL
nginx                              Official build of Nginx.                        19996     [OK]
unit                               Official build of NGINX Unit: Universal Web …   32        [OK]
nginx/nginx-ingress                NGINX and  NGINX Plus Ingress Controllers fo…   92        
nginxinc/nginx-unprivileged        Unprivileged NGINX Dockerfiles                  154       
nginx/nginx-prometheus-exporter    NGINX Prometheus Exporter for NGINX and NGIN…   42        
nginx/unit                         This repository is retired, use the Docker o…   63        
nginx/nginx-ingress-operator       NGINX Ingress Operator for NGINX and NGINX P…   2         
nginxinc/nginx-s3-gateway          Authenticating and caching gateway based on …   6         
nginx/nginx-quic-qns               NGINX QUIC interop                              1         
nginxinc/amplify-agent             NGINX Amplify Agent docker repository           1         
nginxproxy/nginx-proxy             Automated nginx proxy for Docker containers …   140       
nginxinc/ingress-demo              Ingress Demo                                    4         
nginx/unit-preview                 Unit preview features                           0         
bitnami/nginx                      Bitnami container image for NGINX               192       
nginxproxy/acme-companion          Automated ACME SSL certificate generation fo…   134       
ubuntu/nginx                       Nginx, a high-performance reverse proxy & we…   114       
nginxproxy/docker-gen              Generate files from docker container meta-da…   17        
kasmweb/nginx                      An Nginx image based off nginx:alpine and in…   8         
nginxinc/ngx-rust-tool                                                             0         
bitnami/nginx-ingress-controller   Bitnami container image for NGINX Ingress Co…   34        
nginxinc/mra_python_base                                                           0         
bitnami/nginx-exporter             Bitnami container image for NGINX Exporter      5         
nginxinc/mra-fakes3                                                                0         
rancher/nginx                                                                      2         

3.2 获取镜像

# 拉取镜像
# docker pull nginx
# 拉取第三方镜像
# docker pull index.tenxcloud.com/tenxcloud/httpd
# 启动镜像,没有则拉取并启动
docker run -d -p 80:80 nginx
# 容器启动后,在浏览器进行访问测试
Unable to find image 'nginx:latest' locally
latest: Pulling from library/nginx
f11c1adaa26e: Pull complete 
c6b156574604: Pull complete 
ea5d7144c337: Pull complete 
1bbcb9df2c93: Pull complete 
537a6cfe3404: Pull complete 
767bff2cc03e: Pull complete 
adc73cb74f25: Pull complete 
Digest: sha256:67682bda769fae1ccf5183192b8daf37b64cae99c6c3302650f6f8bf5f0f95df
Status: Downloaded newer image for nginx:latest
bf107da1400c5f676e70223d1ec6f687662d4b2719ddf0e32edd740904c203a4

参数说明

参数说明
run运行一个容器
-d放入后台
-p端口映射
nginx镜像名称

3.3 查看当前主机镜像列表

docker image list
REPOSITORY        TAG       IMAGE ID       CREATED         SIZE
postgis/postgis   latest    9acc3941fc21   2 days ago      609MB
nginx             latest    fffffc90d343   2 weeks ago     188MB
hello-world       latest    d2c94e258dcb   14 months ago   13.3kB

3.4 导出镜像

docker image save nginx > docker-nginx.tar.gz

3.5 删除镜像

docker image rm nginx:latest

3.6 导入镜像

docker image load -i docker-nginx.tar.gz

3.7 查看镜像的详细信息

docker image inspect nginx

4 Docker容器基础操作

4.1 启动容器

# 从 Docker 映像创建一个全新的容器。但是,它不会立即运行它。
docker create
# 将启动任何已停止的容器。如果使用 docker create命令创建容器,则可以使用此命令启动它。
docker start
# 命令是创建和启动的组合,因为它创建了一个新容器并立即启动它。实际上,如果docker run命令在您的系统上找不到上述映像,它甚至可以从 Docker Hub 中提取映像。
docker run

4.2 查看正在运行的容器

docker container ls
docker ps

4.3 查看所有容器(包括未运行的)

docker ps -a

4.4 查看容器详细信息/ip

docker container inspect <容器名称/id>

4.5 停止容器

# 发送一个 SIGTERM 信号给容器中的主进程,允许它优雅地关闭。它会等待一段时间(默认为 10 秒,可以通过 -t 选项修改),然后如果容器还没有停止,它会发送一个 SIGKILL 信号来强制终止容器。
docker stop <容器名称/id>
# 立即发送一个 SIGKILL 信号给容器中的主进程,强制终止容器,而不进行任何优雅的关闭操作。
docker container  kill  <容器名称/id>

4.6 进入容器

# 启动一个新的交互式容器。
docker run -it <容器名称/id>
# 连接到一个已经运行的容器的主进程。
docker attach <容器名称/id>
# 在一个已经运行的容器中启动一个新的交互式会话。
docker exec -it <容器名称/id>

4.7 退出容器

  1. Ctrl + P 然后按 Ctrl + Q。这样你会返回到主机的 shell,但容器仍然在后台运行。
  2. exit,退出并停止容器。

4.8 强制删除所有容器

docker rm -f $(docker ps -a -q)

4.9 启动时进行端口映射

docker run -d -p 8888:80  nginx:latest

映射方法

参数说明
-p hostPort:containerPort端口映射 -p 8080:80
-p ip:hostPort:containerPort配置监听地址 -p 10.0.0.100:8080:80
-p ip::containerPort随机分配端口 -p 10.0.0.100::80
-p hostPort:containerPort:udp指定协议 -p 8080:80:tcp
-p 81:80 –p 443:443指定多个映射
  • 14
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

WineMonk

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值