【Docker】docker常用命令


需要云服务器等云产品来学习Linux可以移步/-->腾讯云<--/官网,轻量型云服务器低至112元/年,新用户首次下单享超低折扣。


目录

一、镜像仓库架构图

二、docker仓库命令

1、登录仓库docker login

2、拉取镜像docker pull

3、推送镜像docker push

4、查找镜像docker search

5、登出仓库docker logout

三、docker镜像命令

1、列出本地镜像docker images

2、查看镜像详细信息docker image inspect

3、标记本地镜像,将其归入某一仓库docker tag

4、删除镜像docker rmi/删除容器docker rm

5、将指定的镜像打包成tar文件docker save

6、将docker save的tar包还原回来docker load

7、显示镜像历史docker history

8、删除不使用的镜像docker image prune

四、容器命令

1、创建一个新容器并运行一个命令docker run/创建一个新容器但不运行docker create(命令和docker run一样,docker run多一个-d选项)

-i、-t、-d选项:-it搭配使用,-d后台运行

-p选项:指定端口映射

--name选项:在容器启动时为它取一个名字

--cpuset-cpus="0-2" or --cpuset-cpus="0,1,2": 绑定容器到指定 CPU 运行

-m :设置容器使用内存最大值(示例为500m)

--link=[]: 添加链接到另一个容器,让两个容器能相互访问

--rm :shell 退出的时候自动删除容器

2、列出容器docker ps

3、查看容器日志docker logs

4、将当前终端连接到正在运行的某个Docker容器的标准输入、输出和错误docker attach

5、在容器中执行命令docker exec

6、将停止的容器重新启动docker start/将运行的容器停止docker stop

7、重启容器docker restart

8、强制退出容器docker kill

9、查看容器中运行的进程信息docker top

10、显示容器资源的使用情况docker stats

11、查看容器详细信息docker container inspect

12、查看指定容器所对外映射端口docker port

13、在容器和宿主机之间拷贝文件docker cp

14、 检查容器中文件结构的更改docker diff

15、从容器中创建一个新的自定义镜像docker commit

16、暂停/取消暂停容器中的所有进程docker pause/docker unpause

17、导出容器内容为tar包docker export/将导出的tar包还原为镜像docker import

18、阻塞运行直到容器停止,并打印退出码docker wait

19、容器重命名docker rename

20、删除所有停止的容器docker container prune

21、更新容器配置docker update

五、nginx

六、busybox


一、镜像仓库架构图

镜像仓库:存放镜像的仓库,每个镜像仓库包含多个tag标签

tag标签:每个标签对应一个镜像

二、docker仓库命令

docker指南:Docker Docs

docker官方仓库:https://hub.docker.com/

命令

别名

功能

docker login

登录仓库

docker pull

docker image pull

拉取镜像

docker push

docker image push

推送镜像

docker search

查找镜像

docker logout

登出仓库

1、登录仓库docker login

sudo docker login
sudo docker login -u jianglingyu

2、拉取镜像docker pull

从镜像仓库拉取或更新指定镜像

sudo docker pull nginx:1.23.4-perl
sudo docker pull nginx@sha256:55ef01aae23f582e98d9e91075caa0c96d9c2f2754d24cb0f2be5ca26620a212

3、推送镜像docker push

# 先改一个tag
sudo docker tag nginx:1.23.4-perl jianglingyu/test_repository:666
sudo docker push jianglingyu/test_repository:666

4、查找镜像docker search

一般去hub.docker.com网站里找,较少使用命令。

sudo docker search nginx
# 查找星数大于10的nginx
sudo docker search -f stars=10 nginx

5、登出仓库docker logout

sudo docker logout

三、docker镜像命令

1、列出本地镜像docker images

sudo docker images
# 查找带有nginx相关的镜像
sudo docker images nginx
sudo docker images nginx:1.23.4-perl # 冒号后面必须输入完整
# 顺带显示sha256摘要信息
sudo docker images --digests
# -f代表过滤,比jianglingyu/test_repository:666早创建的镜像
sudo docker images -f before=jianglingyu/test_repository:666

2、查看镜像详细信息docker image inspect

sudo docker image inspect jianglingyu/test_repository:666

比如启动nginx容器,就可以通过该命令查看nginx的启动方式(Cmd字段)和端口(ExposedPorts字段)

3、标记本地镜像,将其归入某一仓库docker tag

和docker push配合使用

sudo docker tag nginx:1.23.4-perl jianglingyu/test_repository:666
# 或者使用image id进行打标签
sudo docker tag 15578d966674 jianglingyu/test_repository:666
# 推送
sudo docker push jianglingyu/test_repository:666

4、删除镜像docker rmi/删除容器docker rm

sudo docker rmi hub.c.163.com/library/tomcat:latest
sudo docker rmi -f hub.c.163.com/library/tomcat:latest # 强制删除
# 删除镜像时,存在引用
[jly@VM-4-6-centos ~]$ sudo docker rmi hello-world:latest
Error response from daemon: conflict: unable to remove repository reference "hello-world:latest" (must force) - container 2e4b11735cb5 is using its referenced image d2c94e258dcb
[jly@VM-4-6-centos ~]$ sudo docker rm 2e4b11735cb5 # 移除容器
2e4b11735cb5
[jly@VM-4-6-centos ~]$ sudo docker rmi hello-world:latest
Untagged: hello-world:latest
Untagged: hello-world@sha256:4bd78111b6914a99dbc560e6a20eab57ff6655aea4a80c50b0c5491968cbc2e6
Deleted: sha256:d2c94e258dcb3c5ac2798d32e1249e42ef01cba4841c2234249495f87264ac5a
Deleted: sha256:ac28800ec8bb38d5c35b49d45a6ac4777544941199075dff8c4eb63e093aa81e

5、将指定的镜像打包成tar文件docker save

# 打包成tar
[jly@VM-4-6-centos busybox]$ sudo docker save -o busybox.tar busybox:1.36
[jly@VM-4-6-centos busybox]$ ls
busybox.tar
# 将多个镜像一起打包成tar
[jly@VM-4-6-centos busybox]$ sudo docker save -o busyboxs.tar busybox:1.36 ccr.ccs.tencentyun.com/jianglingyu/my_busybox:V1.1
[jly@VM-4-6-centos busybox]$ ls
busyboxs.tar  busybox.tar

6、将docker save的tar包还原回来docker load

sudo docker load -i busyboxs.tar -q # -q精简信息,不加q显示还原进度

两台服务器之间通过ssh传输文件scp myfile root@xxx.xxx.xxx.xxx:/filepath

7、显示镜像历史docker history

docker history显示每个层(layer)的创建者、创建时间、大小等信息。

[jly@VM-4-6-centos busybox]$ sudo docker history busybox:1.36 
IMAGE          CREATED       CREATED BY                        SIZE      COMMENT
3f57d9401f8d   2 weeks ago   CMD ["sh"]                        0B        buildkit.dockerfile.v0
<missing>      2 weeks ago   ADD busybox.tar.xz / # buildkit   4.26MB    buildkit.dockerfile.v0

8、删除不使用的镜像docker image prune

[jly@VM-4-6-centos busybox]$ sudo docker image prune 
WARNING! This will remove all dangling images.
Are you sure you want to continue? [y/N] y
Total reclaimed space: 0B

也可以加-a选项,将会清理所有不使用的镜像。

docker image prune命令可以删除以下类型的镜像

  1. 悬挂的镜像(dangling images): 这些是没有与任何容器关联的镜像,可能是之前构建的中间层镜像,或者由于某些原因没有被正确标记的镜像。
  2. 未被使用的本地镜像: 如果某个镜像没有被任何容器使用,它被认为是未被使用的。

这个命令的目的是为了清理系统中不再需要的镜像,以节省磁盘空间。在使用之前,需要确保没有重要的镜像会被删除,因为这个命令是不可逆的。

这个命令和docker rmi的区别在于docker rmi更倾向于手动删除某个镜像。

四、容器命令

1、创建一个新容器并运行一个命令docker run/创建一个新容器但不运行docker create(命令和docker run一样,docker run多一个-d选项)

-d: 后台运行容器,并返回容器 ID;

-i: 以交互模式运行容器,通常与 -t 同时使用;

-P: 随机端口映射,容器内部端口随机映射到主机的端口

-p: 指定端口映射,格式为:主机(宿主)端口:容器端口

-t: 为容器重新分配一个伪输入终端,通常与 -i 同时使用;

--name="nginx-lb": 为容器指定一个名称;

-h "mars": 指定容器的 hostname;

-e username="ritchie": 设置环境变量;

--cpuset-cpus="0-2" or --cpuset-cpus="0,1,2": 绑定容器到指定 CPU 运行;

-m :设置容器使用内存最大值;

--network="bridge": 指定容器的网络连接类型;

--link=[]: 添加链接到另一个容器;

--volume , -v: 绑定一个卷

--rm :shell 退出的时候自动删除容器

-i、-t、-d选项:-it搭配使用,-d后台运行

sudo docker ps            # 查看当前正在运行的容器
sudo docker ps -a         # 曾经运行过或者已创建未运行的容器
sudo docker pull centos:7 # 拉取镜像
sudo docker run centos:7  # 运行centos7容器,执行默认的启动命令(/bin/bash,会直接退出)
sudo docker run -it centos:7 bash # 启动一个centos7交互式的 Bash 终端i:交互模式运行终端,为容器重新分配一个伪输入终端
sudo docker run nginx:1.23.4-perl # 前台运行nginx(不退出),执行默认的启动命令(启动nginx)
sudo docker run -d nginx:1.23.4-perl # 后台运行nginx

-p选项:指定端口映射

[jly@VM-4-6-centos nginx]$ sudo docker run -d -p 8050:80 nginx:1.23.4-perl
71400b8910d6a5aeabc81e68c83d4e4b2c01e256364bf68933f640ca1762ba87

如果没有用-p将端口映射出来:sudo docker run -d nginx:1.23.4-perl,外部浏览器是访问不到容器的nginx的端口的。

当然也可以用sudo docker run -d -P nginx:1.23.4-perl来随机映射端口sudo docker ps查看随机分配的端口。

--name选项:在容器启动时为它取一个名字

sudo docker run --name myNginx nginx:1.23.4-perl

--cpuset-cpus="0-2" or --cpuset-cpus="0,1,2": 绑定容器到指定 CPU 运行

[jly@VM-4-6-centos ~]$ sudo docker run -d --name myNginx --cpuset-cpus="0-9" nginx:1.23.4-perl
docker: Error response from daemon: Requested CPUs are not available - requested 0-9, available: 0-1.
See 'docker run --help'. # 可用核心数为0-1[jly@VM-4-6-centos ~]$ sudo docker run -d --name MyNginx --cpuset-cpus="0-1" nginx:1.23.4-perl
c5720d9ba305e8e48d59653d926d2993315e2a389c831e8e3455361b5b8bffd9

-m :设置容器使用内存最大值(示例为500m)

[jly@VM-4-6-centos ~]$ sudo docker run -d --name MyNginx1 -m 500m nginx:1.23.4-perl
89c9282f55bee6f4d3d83a7bd4827bac1677849ed32c2d40b190fb8d9a8eb2db

--link=[]: 添加链接到另一个容器,让两个容器能相互访问

# 运行centos7容器
[jly@VM-4-6-centos ~]$ sudo docker run -it --name MyCentOS7 centos:7 bash
[root@32fc6c8c5808 /]# 
# 运行第二个centos7容器并对链接的容器改名
[jly@VM-4-6-centos ~]$ sudo docker run -it --name MyCentOS7_1 --link MyCentOS7:changeName centos:7 bash
# 第二个容器ping第一个容器,可以ping通。
[root@6bf58364ef6e /]# ping changeName
PING changeName (172.17.0.4) 56(84) bytes of data.
64 bytes from changeName (172.17.0.4): icmp_seq=1 ttl=64 time=0.101 ms
64 bytes from changeName (172.17.0.4): icmp_seq=2 ttl=64 time=0.050 ms
64 bytes from changeName (172.17.0.4): icmp_seq=3 ttl=64 time=0.053 ms
# 第一个容器ping第二个容器,ping不通(因为创建第一个容器的时候没有--link链接)
[root@32fc6c8c5808 /]# ping MyCentOS7_1
ping: MyCentOS7_1: Name or service not known
# 查看两个容器的/etc/hosts目录,在这个文件中添加ip即可
第一个:
[root@32fc6c8c5808 /]# cat /etc/hosts
127.0.0.1       localhost
::1     localhost ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
172.17.0.4      32fc6c8c5808
第二个:
[root@6bf58364ef6e /]#  cat /etc/hosts
127.0.0.1       localhost
::1     localhost ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
172.17.0.4      changeName 32fc6c8c5808 MyCentOS7 # 保存第一个容器的ip
172.17.0.5      6bf58364ef6e											# 自己的ip

--rm :shell 退出的时候自动删除容器

带--rm,退出后并不会留下记录:

[jly@VM-4-6-centos ~]$ sudo docker run -it --name MyCentOS7_2 --rm centos:7
[root@da44dd4bf0e1 /]# exit
exit
[jly@VM-4-6-centos ~]$ sudo docker ps -a
CONTAINER ID   IMAGE               COMMAND                  CREATED        STATUS                      PORTS     NAMES
6bf58364ef6e   centos:7            "bash"                   3 hours ago    Exited (127) 3 hours ago              MyCentOS7_1
32fc6c8c5808   centos:7            "bash"                   3 hours ago    Exited (127) 2 hours ago              MyCentOS7
89c9282f55be   nginx:1.23.4-perl   "/docker-entrypoint.…"   3 hours ago    Exited (0) 32 minutes ago             MyNginx1
c5720d9ba305   nginx:1.23.4-perl   "/docker-entrypoint.…"   3 hours ago    Up 3 hours                  80/tcp    MyNginx

2、列出容器docker ps

sudo docker ps 
sudo docker ps -a  # 曾经运行过或者已创建未运行的容器
sudo docker ps -as # s:显示大小

3、查看容器日志docker logs

# 启动一个nginx
[jly@VM-4-6-centos ~]$ sudo docker run -d -p 8051:80 --name myNginx nginx:1.23.4-perl
e965415b65e7d0a02be0ec0ce0c640f7828113520b3ead38a5ac9c7b284c7bcd
# 直接docker logs查看日志
[jly@VM-4-6-centos ~]$ sudo docker logs myNginx
/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
2024/02/17 15:41:24 [notice] 1#1: using the "epoll" event method
2024/02/17 15:41:24 [notice] 1#1: nginx/1.23.4
2024/02/17 15:41:24 [notice] 1#1: built by gcc 10.2.1 20210110 (Debian 10.2.1-6) 
2024/02/17 15:41:24 [notice] 1#1: OS: Linux 3.10.0-1160.71.1.el7.x86_64
......
# 加个-f,持续输出(刷新nginx的主页,会持续输出log)
[jly@VM-4-6-centos ~]$ sudo docker logs -f myNginx
# 打印最新的前5条log
[jly@VM-4-6-centos ~]$ sudo docker logs -f -n 5 myNginx

4、将当前终端连接到正在运行的某个Docker容器的标准输入、输出和错误docker attach

关键参数:

--sig-proxy:是否将所有信号代理,默认是true(退出将导致容器退出),若设置为false,则不会影响容器。


连接容器后将会接管该容器的标准输入、标准输出、标准错误,所以网页端一刷新,终端立马接收到相关log信息。若按下ctrl+c,该容器将会退出:

如果在退出时不想退出容器,则需要加上--sig-proxy=false将信号代理:

[jly@VM-4-6-centos ~]$ sudo docker attach --sig-proxy=false myNginx

5、在容器中执行命令docker exec

-d: 分离模式,在后台运行;

-i: 以交互模式运行容器,通常与 -t 同时使用;

-t: 为容器重新分配一个伪输入终端,通常与 -i 同时使用;

-e:设置环境变量;

-u/--user: 指定用户来执行命令

-w/--workdir:指定工作目录

# 进入容器,输入命令
[jly@VM-4-6-centos ~]$ sudo docker exec -it myNginx bash
root@e965415b65e7:/# curl 127.0.0.1 # 通过 HTTP 请求访问本地主机
<!DOCTYPE html>
<html>
<head>
......
# 持续在容器中输入命令
root@e965415b65e7:/# nginx -v
nginx version: nginx/1.23.4
# 输入exit退出
root@e965415b65e7:/# exit
exit
[jly@VM-4-6-centos ~]$ # 这两种方式都可以在容器中输入单条命令
[jly@VM-4-6-centos ~]$ sudo docker exec myNginx nginx -v
nginx version: nginx/1.23.4
[jly@VM-4-6-centos ~]$ sudo docker exec -it myNginx nginx -v
nginx version: nginx/1.23.4

6、将停止的容器重新启动docker start/将运行的容器停止docker stop

[jly@VM-4-6-centos ~]$ sudo docker stop myNginx
myNginx
[jly@VM-4-6-centos ~]$ sudo docker ps 
CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES
[jly@VM-4-6-centos ~]$ sudo docker start myNginx
myNginx
[jly@VM-4-6-centos ~]$ sudo docker ps 
CONTAINER ID   IMAGE               COMMAND                  CREATED        STATUS         PORTS                                   NAMES
e965415b65e7   nginx:1.23.4-perl   "/docker-entrypoint.…"   23 hours ago   Up 7 seconds   0.0.0.0:8051->80/tcp, :::8051->80/tcp   myNginx

7、重启容器docker restart

它可以重启运行、停止甚至已退出的容器。

# 优雅的重启,给足容器时间善后资源
[jly@VM-4-6-centos ~]$ sudo docker restart MyCentOS7
MyCentOS7
# 不优雅的重启,不管容器是否在运行,先发个kill -9直接杀死再重启
[jly@VM-4-6-centos ~]$ sudo docker restart -s -9 MyCentOS7
MyCentOS7

8、强制退出容器docker kill

docker stop发送温柔的SIGTERM信号,docker kill发送暴力的SIGKILL信号。

sudo docker kill

9、查看容器中运行的进程信息docker top

例如有些容器如Nginx中就没有ps命令,要查看容器的进程信息就需要用docker top

[jly@VM-4-6-centos ~]$ sudo docker top myNginx
[jly@VM-4-6-centos ~]$ sudo docker stats

10、显示容器资源的使用情况docker stats

[jly@VM-4-6-centos ~]$ sudo docker stats # 实时刷新
[jly@VM-4-6-centos ~]$ sudo docker stats myNginx # 实时刷新
[jly@VM-4-6-centos ~]$ sudo docker stats -a # 连已经停止的容器都打印出来,没啥用
[jly@VM-4-6-centos ~]$ sudo docker stats --no-stream # 快照形式
CONTAINER ID   NAME      CPU %     MEM USAGE / LIMIT     MEM %     NET I/O           BLOCK I/O     PIDS
e965415b65e7   myNginx   0.00%     2.336MiB / 1.952GiB   0.12%     28.5kB / 21.4kB   3.11MB / 0B   3

11、查看容器详细信息docker container inspect

[jly@VM-4-6-centos ~]$ sudo docker container inspect myNginx
[{"Id": "e965415b65e7d0a02be0ec0ce0c640f7828113520b3ead38a5ac9c7b284c7bcd","Created": "2024-02-17T15:41:20.359522338Z","Path": "/docker-entrypoint.sh","Args": ["nginx","-g","daemon off;"],"State": {"Status": "running",
......

12、查看指定容器所对外映射端口docker port

[jly@VM-4-6-centos ~]$ sudo docker port myNginx
80/tcp -> 0.0.0.0:8051
80/tcp -> [::]:8051

13、在容器和宿主机之间拷贝文件docker cp

# 将容器myNginx中,路径为/usr/share/nginx/html/index.html的文件拷贝至宿主机当前目录
[jly@VM-4-6-centos ~]$ sudo docker cp myNginx:/usr/share/nginx/html/index.html .
Successfully copied 2.56kB to /home/jly/.

14、 检查容器中文件结构的更改docker diff

C:修改过;A:新增;D:删除

[jly@VM-4-6-centos ~]$ sudo docker diff myNginx
C /etc
C /etc/nginx
C /etc/nginx/conf.d
C /etc/nginx/conf.d/default.conf
C /run
A /run/nginx.pid
C /var
C /var/cache
C /var/cache/nginx
A /var/cache/nginx/uwsgi_temp
A /var/cache/nginx/client_temp
A /var/cache/nginx/fastcgi_temp
A /var/cache/nginx/proxy_temp
A /var/cache/nginx/scgi_temp
C /root
A /root/.bash_history

15、从容器中创建一个新的自定义镜像docker commit

-a: 提交的镜像作者;

-c: 使用Dockerfile指令创建镜像,可以修改启动指令;

-m: 提交时的说明文字;

-p:在commit时,将容器暂停。

# 查看当前正在运行的镜像
[jly@VM-4-6-centos ~]$ sudo docker ps
CONTAINER ID   IMAGE               COMMAND                  CREATED        STATUS          PORTS                                   NAMES
e965415b65e7   nginx:1.23.4-perl   "/docker-entrypoint.…"   47 hours ago   Up 21 minutes   0.0.0.0:8051->80/tcp, :::8051->80/tcp   myNginx
# 由运行中的容器myNginx创建一个新的镜像myNginx my_new_nginx
[jly@VM-4-6-centos ~]$ sudo docker commit myNginx my_new_nginx:v1.0
sha256:fa1552088c2d80faee9436b80ccf5927c14b8a7995f88a5c69d5301540b395c5
# 带参数
sudo docker commit -a 'jianglingyu' -m 'add files' -c 'CMD ["tail", "-f", "/etc/hosts"]' -p myNginx my_new_nginx:v2.0

每次commit,生成的镜像会保存当前容器的一些修改。

16、暂停/取消暂停容器中的所有进程docker pause/docker unpause

通过剥夺容器进程的时间片来暂停进程。

# 暂停
[jly@VM-4-6-centos ~]$ sudo docker pause myNginx 
myNginx
# 取消暂停
[jly@VM-4-6-centos ~]$ sudo docker unpause myNginx
myNginx

17、导出容器内容为tar包docker export/将导出的tar包还原为镜像docker import

docker export命令仅导出容器的文件系统,不包括容器的元数据(例如标签、端口映射、卷等)或容器的运行状态。如果还原时需要这些信息,使用docker save/docker load来保存还原。

# 为容器打包
[jly@VM-4-6-centos ~]$ sudo docker export -o myNginx.tar myNginx
# 将导出的包还原为镜像
[jly@VM-4-6-centos ~]$ sudo docker import myNginx.tar myNginxImpoet:v1.0
# -c 修改镜像的启动命令 -m描述信息
[jly@VM-4-6-centos ~]$ sudo docker import -c 'CMD ["nginx", "-g", "daemon off;"]' -m 'new commit' myNginx.tar myNginxImpoet:v1.0

18、阻塞运行直到容器停止,并打印退出码docker wait

# docker wait容器,在被kill之后,退出码137
[jly@VM-4-6-centos ~]$ sudo docker wait myNginx1
137
# 杀掉容器
[jly@VM-4-6-centos ~]$ sudo docker kill myNginx1
myNginx

19、容器重命名docker rename

[jly@VM-4-6-centos ~]$ sudo docker rename myNginx myNginx1

20、删除所有停止的容器docker container prune

[jly@VM-4-6-centos ~]$ sudo docker container prune

21、更新容器配置docker update

--cpus: cpu数量;

--cpuset-cpus: 使用哪几个cpu;

-m/--memory: 内存限制;

--memory-swap:交换内存;

--cpu-period:用来指定容器对cpu的使用要在多长时间做一次重新分配;

--cpu-quota:用来指定这个周期内,最多可以有多少时间跑这个容器。

# 更新容器内存限制为500m
[jly@VM-4-6-centos ~]$ sudo docker update --memory 500m --memory-swap -1 myNginx
myNginx

五、nginx

sudo rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
# 刷新本地存储库元数据缓存
yum makecache
sudo yum install nginx -y
# 启动nginx,可在浏览器中输入服务器IP地址来查看首页
sudo nginx

六、busybox

命令安装:

# centos下载busybox
[jly@VM-4-6-centos busybox]$ wget https://busybox.net/downloads/binaries/1.28.1-defconfig-multiarch/busybox-x86_64 --no-check-certificat
# 加上可执行权限
[jly@VM-4-6-centos busybox]$ chmod +x busybox
# 使用busybox
[jly@VM-4-6-centos busybox]$ ./busybox ls
busybox

使用docker安装:

# 下载docker镜像
sudo docker pull busybox:1.36
# 打标签
sudo docker tag busybox:1.36 jianglingyu/busybox:v1.0
# 登录
sudo docker login
# push镜像到自己的仓库-a代表全部push
sudo docker push jianglingyu/busybox:v1.0 -a

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/702340.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

电子器件系列64:稳压二极管ZM4728A

C143062_稳压二极管_ZM4728A-GS08_规格书_WJ481159 稳压管可以用于信号线路的旁路&#xff0c;用于过滤高频信号&#xff1f; 这种电路叫做限幅电路 从集成电路Al的①脚输出信号通过Rl加到集成电路A2的①脚。当集成电路Al的①脚输出信号幅度没有超过VD1稳压值时&#xff0c;这…

【Python】Windows本地映射远程Linux服务器上的端口(解决jupyter notebook无法启动问题)

创作日志&#xff1a; 学习深度学习不想在本地破电脑上再安装各种软件&#xff0c;我就用实验室的服务器配置环境&#xff0c;启动jupyter notebook时脑子又瓦特了&#xff0c;在自己Windows电脑上打开服务器提供的网址&#xff0c;那肯定打不开啊&#xff0c;以前在其它电脑上…

Vue.js+SpringBoot开发超市商品管理系统

目录 一、摘要1.1 简介1.2 项目录屏 二、研究内容2.1 数据中心模块2.2 超市区域模块2.3 超市货架模块2.4 商品类型模块2.5 商品档案模块 三、系统设计3.1 用例图3.2 时序图3.3 类图3.4 E-R图 四、系统实现4.1 登录4.2 注册4.3 主页4.4 超市区域管理4.5 超市货架管理4.6 商品类型…

JSTL标签

JSTL标签 一、什么是JSTL标签&#xff1a; 随着J2EE瘦客户机技术JavaServer Pages(JSP)在过去几年中的流行&#xff0c;开发人员已经创建了许多自定义的JSP标记库。虽然很多标记库是为实现不同目标的而编写的&#xff0c;但它们往往也对迭代、条件及其它通用操作都提供了类似…

【数据结构】图——最短路径

最短路径问题&#xff1a;从在带权有向图G中的某一顶点出发&#xff0c;找出一条通往另一顶点的最短路径&#xff0c;最短也就是沿路径各边的权值总和达到最小。 最短路径分为图中单源路径和多源路径。 本文会介绍Dijkstra和Bellman-Ford解决单源路径的问题 Floyd-Warshall解…

来看大厂如何设计运营后台系统的?

0 背景 重运营的应用。对于App里的顶导航、我的页面、弹窗等&#xff0c;需要根据模式、版本、平台、语言、渠道等不同的维度进行运营管理。随着业务快速发展&#xff0c;版本快速迭代&#xff0c;如何&#xff1a; 保持运营资源能够被高效、稳定和灵活地配置高效稳定的为新的…

YOLO如何训练自己的模型

目录 步骤 一、打标签 二、数据集 三、跑train代码出模型 四、跑detect代码出结果 五、详细操作 步骤 一、打标签 &#xff08;1&#xff09;在终端 pip install labelimg &#xff08;2&#xff09;在终端输入labelimg打开 如何打标签&#xff1a; 推荐文章&#xf…

代码随想录算法训练营day27|39. 组合总和、40.组合总和II

39. 组合总和 如下树形结构如下&#xff1a; 选取第二个数字5之后&#xff0c;剩下的数字要从5、3中取数了&#xff0c;不能再取2了&#xff0c;负责组合就重复了&#xff0c;注意这一点&#xff0c;自己做的时候没想明白这一点 如果是一个集合来求组合的话&#xff0c;就需…

找游戏 - 华为OD统一考试(C卷)

OD统一考试&#xff08;C卷&#xff09; 分值&#xff1a; 200分 题解&#xff1a; Java / Python / C 题目描述 小扇和小船今天又玩起来了数字游戏&#xff0c; 小船给小扇一个正整数 n&#xff08;1 ≤ n ≤ 1e9&#xff09;&#xff0c;小扇需要找到一个比 n 大的数字 m&a…

如何增加层次厚度?

Q 老师&#xff0c;我在做一个斧头武器&#xff0c;如何在平面上增加厚度和层次呢&#xff1f; A 选中这几个线&#xff0c;点连接就会出现中线&#xff0c;把中线稍作调整即可~

wcf 简单实践 数据绑定 数据校验

1.概要 1.1 说明 数据校验&#xff0c;如果数据不合适&#xff0c;有提示。 1.2 要点 class User : IDataErrorInfothis.DataContext user;<Window.Resources><Setter Property"ToolTip" Value"{Binding RelativeSource{RelativeSource Self},Pat…

3.WEB渗透测试-前置基础知识-快速搭建渗透环境(上)

上一个内容&#xff1a;2.WEB渗透测试-前置基础知识-web基础知识和操作系统-CSDN博客 1.安装虚拟机系统 linux Kali官网下载地址&#xff1a; https://www.kali.org/get-kali/#kali-bare-metal Centos官网下载地址&#xff1a; https://www.centos.org/download/ Deepin官网下…

外包干了3个月,技术倒退1年。。。

先说情况&#xff0c;大专毕业&#xff0c;18年通过校招进入湖南某软件公司&#xff0c;干了接近6年的功能测试&#xff0c;今年年初&#xff0c;感觉自己不能够在这样下去了&#xff0c;长时间呆在一个舒适的环境会让一个人堕落!而我已经在一个企业干了四年的功能测试&#xf…

记录realsense包编译出错的问题

我是ros1...但是下载的包好像适用于ros2 合适的下载地址&#xff1a; ROS1 打开图中所选地址 https://github.com/IntelRealSense/realsense-ros/blob/ros1-legacy/README.md#installation-instructions 版本选择ros1 下载到对应位置即可

牛客周赛 Round 34 解题报告 | 珂学家 | 构造思维 + 置换环

前言 整体评价 好绝望的牛客周赛&#xff0c;彻底暴露了CF菜菜的本质&#xff0c;F题没思路&#xff0c;G题用置换环骗了50%, 这大概是唯一的亮点了。 A. 小红的字符串生成 思路: 枚举 a,b两字符在相等情况下比较特殊 a, b input().split() if a b:print (2)print (a)pri…

【监控】grafana图表使用快速上手

目录 1.前言 2.连接 3.图表 4.job和path 5.总结 1.前言 上一篇文章中&#xff0c;我们使用spring actuatorPrometheusgrafana实现了对一个spring boot应用的可视化监控。 【监控】Spring BootPrometheusGrafana实现可视化监控-CSDN博客 其中对grafana只是打开了一下&am…

【数据结构与算法】(22)高级数据结构与算法设计之 Divide and Conquer 分治法 代码示例与详细讲解

目录 4.4 Divide and Conquer1) 概述二分查找快速排序归并排序合并K个排序链表 - LeetCode 23对比动态规划 2) 快速选择算法数组中第k个最大元素-Leetcode 215数组中位数 3) 快速幂-Leetcode 504) 平方根整数部分-Leetcode 695) 至少k个重复字符的最长子串-Leetcode 395 4.4 Di…

云原生之API网关Traefik

1. 前言 说到web服务的开源网关&#xff0c;我首先想到的是Nginx&#xff0c;最早使用的就是它&#xff0c;现在都还在使用它。系统上线了Docker Swarm集群之后&#xff0c;不继续使用Nginx直接做Docker服务的网关&#xff0c;是因为Nginx毕竟比Docker Swarm出现的早&#xff0…

简单实现文字滚动效果-CSS版本

先看看效果 话不多说直接上代码 <template><div class"main"><div class"scroll-region"><div class"swiper-scroll-content"><span class"list-btn" v-for"(item, index) in overviewList" :…

【基于Ubuntu20.04的Autoware.universe安装过程】方案二:双系统 | 详细记录 | 全过程图文 by.Akaxi

目录 一、Autoware.universe背景 Part-1&#xff1a;安装双系统教程 二、查看Windows引导方式 三、制作安装盘 四、设置电脑配置 1.关闭bitlocker 2.压缩硬盘分区 3.关闭Secure Boot 4.关闭intel RST 5.BIOS设置U盘引导 五、安装Ubuntu20.04 1.ventoy引导 2.安装配…