docker02(docker常用命令)

docker02(docker常用命令)

一.引子

上一篇笔者给大家介绍了docker的基本概念和安装方式,这一篇内容笔者将给大家介绍docker的常用命令。干中学,干中练,干中教。
docker的内容离不开的还是镜像,容器,仓库。接下来我们的命令学习也是主要围绕着这三点进行整理。

二.docker常用命令详解

(一).docker资源查看基础命令

1.docker version(查看版本号)

[root@localhost ~]# docker version
Client: Docker Engine - Community
 Version:           19.03.13
 API version:       1.40
 Go version:        go1.13.15

2.docker info(守护进程系统资源设置)

[root@localhost ~]# docker info
Client:
 Debug Mode: false

Server:
 Containers: 7
  Running: 0
  Paused: 0

3.docker(等同于docker --helip,查看具体命令帮助信息)

[root@localhost ~]# docker
Usage:  docker [OPTIONS] COMMAND
A self-sufficient runtime for containers

(二).镜像操作基础命令

1.docker images(列出主机上所有镜像)
REPOSITORY:表示镜像的仓库源

TAG:镜像的标签,IMAGE ID:镜像IDCREATED:镜像创建时间SIZE:镜像大小

[root@localhost ~]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
nginx               latest              f35646e83998        2 weeks ago         133MB
hello-world         latest              bf756fb1ae65        10 months ago       13.3kB
ubuntu              15.10               9b9cb95443b5        4 years ago         137MB

2.docker pull(下载镜像)

[root@localhost ~]# docker pull centos7
Using default tag: latest

3.docker rmi (删除镜像)

[root@localhost ~]# docker rmi hello-world
Error response from daemon: conflict: unable to remove repository reference "hello-world" (must force) - container f35c2c13e5f0 is using its referenced image bf756fb1ae65
#在运行,强制删除-f
[root@localhost ~]# docker rmi -f hello-world
Untagged: hello-world:latest
Untagged: hello-world@sha256:8c5aeeb6a5f3ba4883347d3747a7249f491766ca1caa47e5da5dfcf6b9b717c0
Deleted: sha256:bf756fb1ae65adf866bd8c456593cd24beb6a0a061dedf42b26a993176745f6b

4.docker inspect (获取容器/镜像的元数据)

[root@localhost ~]# docker inspect nginx
[
    {
        "Id": "sha256:f35646e83998b844c3f067e5a2cff84cdf0967627031aeda3042d78996b68d35",
        "RepoTags": [
            "nginx:latest"
        ],

5.docker tag(改名:标记某一镜像,将其归类为某一仓库)

[root@localhost ~]# docker tag wordpress:0001 wordpress:v1
[root@localhost ~]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
wordpress           0001                c34f25769273        14 hours ago        536MB
wordpress           latest              c34f25769273        14 hours ago        536MB
wordpress           v1                  c34f25769273        14 hours ago        536MB

6.docker build(将dockerfile文件内容执行并保存镜像)

#使用当前目录的dockerfile目录创建镜像
[root@localhost ~]# mkdir dockerfile
[root@localhost ~]# docker build -t runoob/ubuntu:v1 . 
^Cnding build context to Docker daemon  114.8MB

8.docker history (查看当前镜像的创建历史)

[root@localhost ~]# docker history wordpress:0001 
IMAGE               CREATED             CREATED BY          SIZE                COMMENT
c34f25769273        14 hours ago                            536MB               Imported from -

(三).容器操作基础命令

1.docker run/docker create(创建启动容器,后者创建容器但不启动)
参数讲解:–name:指定名称 -env:指定环境 MYSQL_ROOT_PASSWORD:指定密码 -d:容器进入后台运行 --link:指定依赖 -p:指定端口映射 -i:进入交互式 -t:指定终端 --restart=always 设置开机自启动 -h x.xx.xx设置容器主机名 --add-host hostname:设置ip域名解析 --rm:设置服务停止时自动删除

[root@localhost ~]# docker run --name idb --env MYSQL_ROOT_PASSWORD=example -d mariadb
3c8ac8f58267675802821957c370f7d961846b70ee5b3b8d5c98122b5a26ec57
[root@localhost ~]#docker run --name MyWordPress --link db:mysql -p 8080:80 -d wordpress
ad41e0aa1d028cec6f65a7472fb4170df5d293db1596d8094da6d5bb8bc24d6a

[root@localhost ~]# docker run -it nginx /bin/bash
root@7a76109f72d7:/# 

2.docker ps (查看容器命令)

#列出正在运行的容器
[root@localhost ~]# docker ps 
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                 NAMES
4cb9c21cf4a3        wordpress           "docker-entrypoint.s…"   25 minutes ago      Up 25 minutes       0.0.0.0:808->80/tcp   iPress

#列出所有容器(包括未运行的容器)
[root@localhost ~]# docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                        PORTS                  NAMES
a2a86c359c2a        ubuntu:15.10        "/bin/bash"              9 minutes ago       Exited (130) 9 seconds ago                           romantic_gates
66d52a0ca58c        mariadb             "docker-entrypoint.s…"   9 minutes ago       Exited (130) 9 minutes ago                           agitated_jang

3.docker rm(删除容器 -f 强制删除)

[root@localhost ~]# docker rm test
test

3.docker start(启动一个已经停止的容器)

[root@localhost ~]# docker start db
db

4.docker stop(关闭一个已经启动的容器)

[root@localhost ~]# docker stop db
db

5.docker kill(杀掉一个运行中的容器)

[root@localhost ~]# docker kill mydb
mydb

6.Docker pause/unpause(暂停docker容器中所有进程)

[root@localhost ~]# docker pause mydb
mydb
[root@localhost ~]# docker unpause mydb
mydb

7.docker exec / docker attach (进入容器,推荐第一个,因为第一个退出容器时不会关闭容器)

#可以使用容器id或定义名称进入
[root@localhost ~]# docker exec -it idb /bin/bash
root@3c8ac8f58267:/# 

8.docker export(导出容器为tar文件/)

 [root@localhost ~]#  docker export a4833450c683 > wordpress.tar
[root@localhost ~]# ls
1.txt  anaconda-ks.cfg  wordpress.tar

9.docker save(导出镜像为文件)

#-o :输出到的文件
[root@localhost ~]# docker save -o mairadb.tar mariadb
[root@localhost ~]# ls
1.txt  anaconda-ks.cfg  dockerfile  mairadb.tar  wordpress.tar

10.docker commit (将容器创建为一个新的镜像)
-a :提交的镜像作者;
-c :使用Dockerfile指令来创建镜像;
-m :提交时的说明文字;
-p :在commit时,将容器暂停。

[root@localhost ~]# docker commit -a"hlqliunx" -m "my wordoress" 4cb9c21cf4a3 wordpress:01
sha256:91e0bf020ad0cec10d38424c7898dca5495f636e7496cb98381d18b5c5454b62
[root@localhost ~]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
wordpress           01                  91e0bf020ad0        11 seconds ago      546MB

11.docker load : 导入使用 docker save 命令导出的镜像。

[root@localhost ~]# docker load -i mairadb.tar
Loaded image: mariadb:latest

12.docker import(从归档文件中导入镜像)

[root@localhost ~]# cat wordpress.tar | docker import - wordpress
sha256:c34f25769273aa782e55a93de73813b32419b65188b54b05e20455506dd36e43

13.docker top(查看容器中运行的进程信息)

[root@localhost ~]# docker top mydb
UID                 PID                 PPID                C                   STIME               TTY                 TIME                CMD
polkitd             38691               38675               0                   09:58               ?                   00:00:00            mysqld

14.docker events(从时间查看事件)

[root@localhost ~]# docker events --since "1467302400"
2020-10-30T09:49:27.623317909+08:00 image tag sha256:c34f25769273aa782e55a93de73813b32419b65188b54b05e20455506dd36e43 (name=wordpress:0001)
2020-10-30T09:53:36.257270625+08:00 network connect 10d4326dc289d8bca49b7d7490042fa4447b8d300ce8c829441bd74c61f41503 (container=a4833450c683386d1264bb0b31971088ffc1e27382db021d1470c0334a2bc65a, name=bridge, type=bridge)

15.docker logs(获取容器日志)

[root@localhost ~]# docker logs mydb
2020-10-29 06:56:02+00:00 [Note] [Entrypoint]: Entrypoint script for MySQL Server 1:10.5.6+maria~focal started.
#查看最后十条日志
[root@localhost ~]# docker logs --tail 10 mydb
2020-10-30  1:58:27 0 [Note] InnoDB: 10.5.6 started; log sequence number 45261; transaction id 21
2020-10-30  1:58:27 0 [Note] Plugin 'FEEDBACK' is disabled.
2020-10-30  1:58:27 0 [Note] InnoDB: Loading buffer pool(s) from /var/lib/mysql/ib_buffer_pool
2020-10-30  1:58:27 0 [Note] InnoDB: Buffer pool(s) load completed at 201030  1:58:27
2020-10-30  1:58:27 0 [Note] Server socket created on IP: '::'.

16.docker port(列出指定容器的端口映射)

[root@localhost ~]# docker port iPress
80/tcp -> 0.0.0.0:808

17.docker diff (检查容器内文件的修改)

[root@localhost ~]# docker diff iPress 
C /run
C /run/apache2
A /run/apache2/apache2.pid

18.docker cp (容器与主机之间拷贝文件)

[root@localhost ~]#docker cp /www/runoob 96f7f14e99ab:/www/

(四).仓库操作基础命令

1.docker login(登陆仓库)

[root@localhost ~]# docker login
Login with your Docker ID to push and pull images from Docker Hub. If you don't have a Docker ID, head over to https://hub.docker.com to create one.
Username: hlqlinux
Password: 
WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store

Login Succeeded

2.docker out(登出仓库)

[root@localhost ~]# docker logout
Removing login credentials for https://index.docker.io/v1/

3.docker push(将镜像推送到仓库)

[root@localhost ~]# docker push wordpress
The push refers to repository [docker.io/library/wordpress]
541f23b1ff92: Preparing 

4.docker search 寻找镜像(在hub仓库中寻找)

[root@localhost ~]# docker search centos7
NAME                               DESCRIPTION                                     STARS               OFFICIAL            AUTOMATED
ansible/centos7-ansible            Ansible on Centos7                              132                                     [OK]
ryanj/centos7-s2i-nodejs           STOP RUNNING YOUR APP BUILDS AS ROOT!! Use t…   5                                       
paigeeworld/centos7                Centos7 with apache, iperf3, nmap, ssh          5                                       
flyceek/centos7-jdk                centos7-jdk                                     5                                       [OK]

以上便是一些基础命令,万丈高楼平地起,打好基础,再去了解更深入的板块。基础命令主要针对单一容器的管理,对于我们运维工程师来说是远远不够的。接下来我们将进入多容器管理章节。感谢大家浏览。

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值