Docker系列(2-理论篇) 基本使用和常用命令

本文详细介绍Docker的基本操作,包括镜像和容器的管理。涵盖镜像查看、容器启动、日志查看、端口映射及容器的启动、停止、重启和删除。适合初学者快速上手。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、开始基本操作:

1、查看镜像:

[root@app-dev-yunying yunying]# docker images
REPOSITORY                   TAG                 IMAGE ID            CREATED             SIZE
yunying-image                latest              4caddf8a46bc        4 hours ago         310MB
nginx                        latest              568c4670fa80        9 days ago          109MB
frolvlad/alpine-oraclejdk8   slim                3ee5e1ce00fc        6 weeks ago         164MB

##一个镜像的标识由仓库信息价tag构成

比方说我们启动可以用Image ID来标识,或者lnmp/nginx:0.2这样标识,不写后面默认是lastest

 

2、有镜像之后我们可以启动一个容器:

[root@app-dev-yunying yunying]# docker run -dit -P nginx
73e3830ce7955b3ebab22bb8c19f5602cc7121ba3486842774fff97221885902

##docker run 后面常用选项:

  • --name:指定容器名称(未指定则随机取名)
  • -P:随机映射端口
  • -v:实现文件或者目录挂载
  • -i:交互
  • -t:tty
  • -p: 宿主机端口:容器端口

-it常一起使用,以一个新的伪终端开启一个容易,使用后就能新开一个容器中的终端,相当于新开了一个虚拟机,接着在终端中的命令就是在容器中执行命令

 

如果加上-P无法打开docker,打开防火墙服务即可

[root@app-dev-yunying yunying]#  docker run -itd -P nginx

ff89a83b8fc32962f9e8afe3879da054518f63006d6bb6e0e8e9a35eb7dd5d2e

docker: Error response from daemon: driver failed programming external connectivity on endpoint admiring_mestorf (f13d182567aaf075fa403e53e6f2880c7e41c450d8480eb57ee7562914548cb9):  (iptables failed: iptables --wait -t nat -A DOCKER -p tcp -d 0/0 --dport 32827 -j DNAT --to-destination 172.17.0.4:80 ! -i docker0: iptables: No chain/target/match by that name.

打开防火墙:

[root@app-dev-yunying yunying]# sudo systemctl startfirewalld.service

 

端口映射

 docker run -itd -p 9999:80 --name test02 nginx

本机端口9999映射到容器80

docker映射端口查看

[root@app-dev-yunying yunying]# docker port test02 
80/tcp -> 0.0.0.0:9999

 

##我们启动一个容器,默认没有指定后面的tag标签就是变成:nginx:latest,然后我们可以看到本地没有镜像的话就会去远端的Docker hub下载。

 

3、查看docker镜像:

[root@app-dev-yunying yunying]# docker images
REPOSITORY                   TAG                 IMAGE ID            CREATED             SIZE
yunying-image                latest              4caddf8a46bc        5 hours ago         310MB
nginx                        latest              568c4670fa80        9 days ago          109MB
frolvlad/alpine-oraclejdk8   slim                3ee5e1ce00fc        6 weeks ago         164MB

4、查看docker容器: 

[root@app-dev-yunying yunying]# docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                     PORTS                    NAMES
73e3830ce795        nginx               "nginx -g 'daemon of…"   12 minutes ago      Up 12 minutes              0.0.0.0:32769->80/tcp    happy_turing
da273b044326        yunying-image       "sh -c 'java $JAVA_O…"   2 hours ago         Up 2 hours                 0.0.0.0:8080->8080/tcp   serene_chebyshev
ba82761001b8        nginx               "nginx -g 'daemon of…"   2 hours ago         Exited (0) 2 hours ago                              vibrant_feynman

 

[root@app-dev-yunying yunying]# docker ps --help

Usage:  docker ps [OPTIONS]

List containers

Options:
  -a, --all             全部显示所有容器
  -l, --latest          最新显示最新创建的容器(包括所有状态)
  -q, --quiet           只显示容器id
  -s, --size            显示文件的总大小

 

4、测试一下容器是否启动成功:

[root@test ~]# curl 127.0.0.1:9999
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
<style>
    body {
        width: 35em;
        margin: 0 auto;
        font-family: Tahoma, Verdana, Arial, sans-serif;
    }
</style>

 

查看镜像信息

systemctl status docker 查看docker启动位置

docker info 查看本机docker的版本、镜像等基本信息

docker inspect test02 查看某个镜像的详细信息

5、我们可以查看相关容器的日志:

[root@app-dev-yunying yunying]#  docker logs 2b5a158c8c3d

10.1.71.1 - - [11/Mar/2017:08:54:26 +0000] "GET / HTTP/1.1" 200 612 "-" "curl/7.29.0" "-"

 

6、当然我们也可以登录容器:

[root@app-dev-yunying yunying]# docker exec -it 73e3830ce795 /bin/bash
root@73e3830ce795:/# ls
bin  boot  dev  etc  home  lib  lib64  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var

 

7、当然也可以用来执行command模式,给容器执行一个命令: 

[root@test ~]# docker run nginx uname -a

Linux 0136fbefaa24 4.10.0-1.el7.elrepo.x86_64 #1 SMP Sun Feb 19 19:12:49 EST 2017 x86_64 GNU/Linux

 

8、容器删除和重启

启动容器: docker start ID/NAME

停止容器: docker stop ID/NAME

重启容器: docker restartID/NAME

删除一个容器:  dockr rm ID/NAME

删除运行中的容器:  docker rm -f ID/NAME

删除正在运行的容器 : docker rm -f $(docker ps -q)

删除一个镜像:  dockr rmi ID/NAME

删除包括运行中的所有容器

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值