目录
Docker基本命令
查看docker的信息
查看docker的版本
[root@cloud ~]# docker version
Client: Docker Engine - Community
Version: 19.03.7 ##此处显示客户端的版本
API version: 1.40
Go version: go1.12.17
Git commit: 7141c199a2
Built: Wed Mar 4 01:24:10 2020
OS/Arch: linux/amd64
Experimental: false
Server: Docker Engine - Community
Engine:
Version: 19.03.7 ##显示服务端的版本
API version: 1.40 (minimum version 1.12) ##接口的版本
Go version: go1.12.17
Git commit: 7141c199a2
Built: Wed Mar 4 01:22:45 2020 ##创建时间
OS/Arch: linux/amd64
Experimental: false
containerd:
Version: 1.2.13
GitCommit: 7ad184331fa3e55e52b890ea95e65ba581ae3429
runc:
Version: 1.0.0-rc10
GitCommit: dc9208a3303feef5b3839f4323d9beb36df0a9dd
docker-init:
Version: 0.18.0
GitCommit: fec3683
[root@cloud ~]#
显示docker系统的详细信息
[root@cloud ~]# docker info
Client:
Debug Mode: false ##客户端模块没有开启
Server:
Containers: 0 ##表示没有容器存在
Running: 0
Paused: 0
Stopped: 0
Images: 1 ##表示存在一个镜像
Server Version: 19.03.7
Storage Driver: overlay2
Backing Filesystem: <unknown>
Supports d_type: true
Native Overlay Diff: true
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins: ##插件信息
Volume: local
Network: bridge host ipvlan macvlan null overlay
Log: awslogs fluentd gcplogs gelf journald json-file local logentries splunk syslog
Swarm: inactive
Runtimes: runc
Default Runtime: runc
Init Binary: docker-init
containerd version: 7ad184331fa3e55e52b890ea95e65ba581ae3429
runc version: dc9208a3303feef5b3839f4323d9beb36df0a9dd
init version: fec3683
Security Options:
seccomp
Profile: default
Kernel Version: 3.10.0-957.21.3.el7.x86_64
Operating System: CentOS Linux 7 (Core)
OSType: linux
Architecture: x86_64
CPUs: 2
Total Memory: 3.701GiB
Name: cloud
ID: OJQP:OD7B:TA23:O7ZU:CIYO:CKPO:XN4S:GOQI:ORFF:2JEU:ERED:KAF2
Docker Root Dir: /var/lib/docker
Debug Mode: false
Registry: https://index.docker.io/v1/
Labels:
Experimental: false
Insecure Registries:
127.0.0.0/8
Registry Mirrors:
https://dnntzrw4.mirror.aliyuncs.com/
Live Restore Enabled: false
[root@cloud ~]#
对image的操作
检索image
##name表示镜像名字
##DESCRIPTION 表示该镜像的功能
##STARS表示下载热度
[root@cloud docker]# docker search httpd
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
httpd The Apache HTTP Server Project 2903 [OK]
centos/httpd-24-centos7 Platform for running Apache httpd 2.4 or bui… 30
centos/httpd 28 [OK]
salim1983hoop/httpd24 Dockerfile running apache config 2 [OK]
lead4good/httpd-fpm httpd server which connects via fcgi proxy h… 1 [OK]
jonathanheilmann/httpd-alpine-rewrite httpd:alpine with enabled mod_rewrite 1 [OK]
clearlinux/httpd httpd HyperText Transfer Protocol (HTTP) ser… 1
solsson/httpd-openidc mod_auth_openidc on official httpd image, ve… 1 [OK]
dariko/httpd-rproxy-ldap Apache httpd reverse proxy with LDAP authent… 1 [OK]
appertly/httpd Customized Apache HTTPD that uses a PHP-FPM … 0 [OK]
dockerpinata/httpd 0
interlutions/httpd httpd docker image with debian-based config … 0 [OK]
itsziget/httpd24 Extended HTTPD Docker image based on the off… 0 [OK]
manasip/httpd 0
izdock/httpd Production ready Apache HTTPD Web Server + m… 0
trollin/httpd 0
amd64/httpd The Apache HTTP Server Project 0
e2eteam/httpd 0
manageiq/httpd_configmap_generator Httpd Configmap Generator 0 [OK]
publici/httpd httpd:latest 0 [OK]
hypoport/httpd-cgi httpd-cgi 0 [OK]
manageiq/httpd Container with httpd, built on CentOS for Ma… 0 [OK]
alvistack/httpd Docker Image Packaging for Apache 0 [OK]
buzzardev/httpd Based on the official httpd image 0 [OK]
ppc64le/httpd The Apache HTTP Server Project 0
##-s + 数字,表示过滤该数字下的镜像
[root@cloud docker]# docker search nginx -s 1000
Flag --stars has been deprecated, use --filter=stars=3 instead
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
nginx Official build of Nginx. 12795 [OK]
jwilder/nginx-proxy Automated Nginx reverse proxy for docker con… 1752 [OK]
[root@cloud docker]#
下载image
##一般下载镜像前会先检索一下镜像
[root@cloud ~]# docker pull mysql
Using default tag: latest
latest: Pulling from library/mysql
68ced04f60ab: Already exists
f9748e016a5c: Pull complete
da54b038fed1: Pull complete
6895ec5eb2c0: Pull complete
111ba0647b87: Pull complete
c1dce60f2f1a: Pull complete
702ec598d0af: Pull complete
4aba2fcbe869: Pull complete
b26bbbd533e6: Pull complete
7bd100a66c55: Pull complete
74149336419a: Pull complete
145ea1f01648: Pull complete
Digest: sha256:4a30434ce03d2fa396d0414f075ad9ca9b0b578f14ea5685e24dcbf789450a2c
Status: Downloaded newer image for mysql:latest
docker.io/library/mysql:latest
列出镜像列表
##REPOSITORY:表示镜像的仓库源
##TAG:镜像的标签
##IMAGE ID:镜像ID
##CREATE镜像在共有仓库最新更新时间
##SIZE 镜像大小
[root@cloud ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
mysql latest 9b51d9275906 7 days ago 547MB
httpd latest c5a012f9cf45 2 weeks ago 165MB
[root@cloud ~]#
获取镜像的详细信息(docker inspect + IMAGE ID)
[root@cloud ~]# docker inspect 9b51d9275906
[
{
"Id": "sha256:9b51d9275906910446e03bb86e16a0fe0051d6518ba7ae39c8780fc2323fd637",
"RepoTags": [
"mysql:latest"
],
"RepoDigests": [
"mysql@sha256:4a30434ce03d2fa396d0414f075ad9ca9b0b578f14ea5685e24dcbf789450a2c"
],
"Parent": "",
...
添加镜像的标签(相当于生成一个新的镜像)
[root@cloud ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
mysql latest 9b51d9275906 7 days ago 547MB
httpd latest c5a012f9cf45 2 weeks ago 165MB
[root@cloud ~]# docker tag mysql:latest mysql:database
[root@cloud ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
mysql database 9b51d9275906 7 days ago 547MB
mysql latest 9b51d9275906 7 days ago 547MB
httpd latest c5a012f9cf45 2 weeks ago 165MB
[root@cloud ~]#
##命令格式为
docker tag 镜像名:原标签名 镜像名:新标签名
删除镜像(格式:docker rmi 镜像名:标签名 )
[root@cloud ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
mysql database 9b51d9275906 7 days ago 547MB
mysql latest 9b51d9275906 7 days ago 547MB
httpd latest c5a012f9cf45 2 weeks ago 165MB
[root@cloud ~]# docker rmi mysql:latest
Untagged: mysql:latest
[root@cloud ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
mysql database 9b51d9275906 7 days ago 547MB
httpd latest c5a012f9cf45 2 weeks ago 165MB
查看镜像的历史信息(格式:docker history 镜像名:标签名)
[root@cloud ~]# docker history httpd:latest
IMAGE CREATED CREATED BY SIZE COMMENT
c5a012f9cf45 2 weeks ago /bin/sh -c #(nop) CMD ["httpd-foreground"] 0B
<missing> 2 weeks ago /bin/sh -c #(nop) EXPOSE 80 0B
<missing> 2 weeks ago /bin/sh -c #(nop) COPY file:c432ff61c4993ecd… 138B
<missing> 2 weeks ago /bin/sh -c #(nop) STOPSIGNAL SIGWINCH 0B
<missing> 2 weeks ago /bin/sh -c set -eux; savedAptMark="$(apt-m… 60.7MB
<missing> 2 weeks ago /bin/sh -c #(nop) ENV HTTPD_PATCHES= 0B
<missing> 2 weeks ago /bin/sh -c #(nop) ENV HTTPD_SHA256=133d4829… 0B
<missing> 2 weeks ago /bin/sh -c #(nop) ENV HTTPD_VERSION=2.4.41 0B
<missing> 2 weeks ago /bin/sh -c set -eux; apt-get update; apt-g… 35.4MB
<missing> 2 weeks ago /bin/sh -c #(nop) WORKDIR /usr/local/apache2 0B
<missing> 2 weeks ago /bin/sh -c mkdir -p "$HTTPD_PREFIX" && chow… 0B
<missing> 2 weeks ago /bin/sh -c #(nop) ENV PATH=/usr/local/apach… 0B
<missing> 2 weeks ago /bin/sh -c #(nop) ENV HTTPD_PREFIX=/usr/loc… 0B
<missing> 2 weeks ago /bin/sh -c #(nop) CMD ["bash"] 0B
<missing> 2 weeks ago /bin/sh -c #(nop) ADD file:e5a364615e0f69616… 69.2MB
[root@cloud ~]#
导出已经下载好的镜像
[root@cloud ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
mysql database 9b51d9275906 7 days ago 547MB
httpd latest c5a012f9cf45 2 weeks ago 165MB
[root@cloud ~]# ls
##save表示保存
##-o表示自定义命名
[root@cloud ~]# docker save -o mysql mysql:database
[root@cloud ~]# ls
mysql
[root@cloud ~]# ll -h
total 527M
-rw------- 1 root root 527M Mar 12 17:54 mysql
[root@cloud ~]#
载入镜像到docker里面(载入有两种格式,1:docker load < j镜像名;2:docker --input 镜像名)
[root@cloud ~]# ls
mysql
[root@cloud ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
mysql database 9b51d9275906 7 days ago 547MB
httpd latest c5a012f9cf45 2 weeks ago 165MB
[root@cloud ~]# docker rmi mysql:database
Untagged: mysql:database
Untagged: mysql@sha256:4a30434ce03d2fa396d0414f075ad9ca9b0b578f14ea5685e24dcbf789450a2c
Deleted: sha256:9b51d9275906910446e03bb86e16a0fe0051d6518ba7ae39c8780fc2323fd637
Deleted: sha256:3b5f20d41feb31513164dab347e9f5bea57dc9c644819aeea2dd5cbb7c7213bf
Deleted: sha256:0c9402cadbef6d34b3c8db27a0d793011c2de41cabc14354734752ec7bd325c1
Deleted: sha256:177c77529402c2687f69bb1cb16c1d6c82351e9f0ab5e7729d48ffab311b85be
Deleted: sha256:67ef0899247f5e0163e7592aeff6a5ecfe644a67e465c207234153ff8ffc5be0
Deleted: sha256:85437a1ff817195eff1881a5b2d12bc0e17fa299cbba52cc6e2bb23f27d160bd
Deleted: sha256:1dc77e60e1b82d40abf76f305b0854f0e3ad0352f7e18372344b955b84dfe9f5
Deleted: sha256:f145e1f715e622fbdb1677a24ca723e52a4bd921ad656faab61f537d3f326c4a
Deleted: sha256:b1dbb44d9f303b7b24defc06cc8b6c58a38a0c3ed7e917adc309d5a75926dace
Deleted: sha256:c92180bc575fea05e5dd83cbad7d2fd1852732f162b00818b101b2baabda04ac
Deleted: sha256:c8420ebfba3078cd14bed76ee7d244b6ce4abad47f4f4843682eea6f03bd575e
Deleted: sha256:bbb9cccab59a16cb6da78f8879e9d07a19e3a8d49010ab9c98a2c348fa116c87
[root@cloud ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
httpd latest c5a012f9cf45 2 weeks ago 165MB
[root@cloud ~]# docker load < mysql
a9f6b7c7101b: Loading layer [==================================================>] 338.4kB/338.4kB
0c615b40cc37: Loading layer [==================================================>] 9.539MB/9.539MB
ad160f341db9: Loading layer [==================================================>] 4.495MB/4.495MB
1ea6ef84dc3a: Loading layer [==================================================>] 1.536kB/1.536kB
6fce4d95d4af: Loading layer [==================================================>] 53.75MB/53.75MB
6de3946ea013: Loading layer [==================================================>] 6.656kB/6.656kB
d501f79e3989: Loading layer [==================================================>] 3.584kB/3.584kB
1ca405fbe05e: Loading layer [==================================================>] 411.2MB/411.2MB
dbfa2f8c95c3: Loading layer [==================================================>] 5.632kB/5.632kB
f1a617f37b0a: Loading layer [==================================================>] 16.38kB/16.38kB
2ea3f5d1b2f3: Loading layer [==================================================>] 1.536kB/1.536kB
Loaded image: mysql:database
[root@cloud ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
mysql database 9b51d9275906 7 days ago 547MB
httpd latest c5a012f9cf45 2 weeks ago 165MB
[root@cloud ~]#
上传镜像到公有仓库(必须要有docker官方账号,且创建公有仓库)
#登录
docker login
输入账号、密码
#上传
docker push 镜像名;标签名(一般公司使用私有仓库)
对容器的操作
创建容器
[root@cloud ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
mysql database 9b51d9275906 7 days ago 547MB
httpd latest c5a012f9cf45 2 weeks ago 165MB
##创建容器前需要保证有该镜像
##-i表示输入,-t表示绑定终端
##/bin/bash表示运行环境
##执行create创建容器之后会生成一个唯一的容器ID
[root@cloud ~]# docker create -it httpd:latest /bin/bash
648b7be24b89616af0c1bd8c1dc061b6612b693430f2e12f193486f9573d20ea
查看容器信息
[root@cloud ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
648b7be24b89 httpd:latest "/bin/bash" 3 minutes ago Created pedantic_hamilton
[root@cloud ~]#
##执行docker ps -a可以查看所有容器的状态,STATUS表示容器的状态
有如下参数 -a:查看正在运行和历史运行的容器;
-l 显示最近创建的容器;
-n 显示最近n个创建的容器;
-q 静默模式,只显示容器编号;
--no-trunc 不截断输出;
启动容器
##命令格式:docker start + 容器ID
##再次查看容器状态时,显示Up状态,出现PORTS数据
[root@cloud ~]# docker start 648b7be24b89
648b7be24b89
[root@cloud ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
648b7be24b89 httpd:latest "/bin/bash" 17 minutes ago Up 4 seconds 80/tcp pedantic_hamilton
[root@cloud ~]#
run命令
##命令格式:docker run 镜像名 /usr/bin/bash -c ls /
##/usr/bin/bash指定运行环境,-c指定执行命令,/表示在根目录下
(docker run命令会执行从创建容器,开启容器,执行命令,关闭容器等一系列过程)
(如果没有创建容器,没有镜像,就会从下载镜像开始执行,一直到关闭容器)
(执行完成后直接关闭,状态为exited)
进入容器与退出容器
##进入容器,前提是容器在开启状态
[root@localhost ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
9074bddd65ba centos:latest "/bin/bash" About a minute ago Up 2 seconds loving_bouman
bf3c9de66574 httpd "/usr/bin/bash -c ll…" 6 minutes ago Created 80/tcp frosty_mendel
[root@localhost ~]# docker exec -it 9074bddd65ba /bin/bash
[root@9074bddd65ba /]# ls
bin dev etc home lib lib64 lost+found media mnt opt proc root run sbin srv sys tmp usr var
##使用exit命令退出容器
[root@9074bddd65ba /]# exit
exit
[root@localhost ~]#
关闭容器
[root@localhost ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
9074bddd65ba centos:latest "/bin/bash" 8 minutes ago Up 6 minutes loving_bouman
[root@localhost ~]# docker stop 9074bddd65ba
9074bddd65ba
[root@localhost ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
9074bddd65ba centos:latest "/bin/bash" 8 minutes ago Exited (0) 2 seconds ago loving_bouman
[root@localhost ~]#
导出容器(格式为:docker export 容器ID > 定义容器名)
[root@localhost ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
9074bddd65ba centos:latest "/bin/bash" 9 minutes ago Exited (0) About a minute ago loving_bouman
[root@localhost ~]# cd /mnt
[root@localhost mnt]# ls
[root@localhost mnt]# docker export 9074bddd65ba > centos
-rw-r--r-- 1 root root 244943360 3月 12 22:08 centos
[root@localhost mnt]# ll -h
总用量 234M
-rw-r--r-- 1 root root 234M 3月 12 22:08 centos
[root@localhost mnt]#
导入容器
####导入容器只会生成镜像
###命令格式:cat 容器名 | docker import - 镜像:标签
[root@localhost mnt]# ls
centos
[root@localhost mnt]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
[root@localhost mnt]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
[root@localhost mnt]# cat centos | docker import - centos:system
sha256:33857c283613993c1683df9c35b9c6d45c913084c69fc4c5fb250cd99aab95d2
[root@localhost mnt]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
centos system 33857c283613 6 seconds ago 237MB
[root@localhost mnt]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
[root@localhost mnt]#
删除容器
##删除容器(必须先删除容器才能删镜像)
docker rm 容器ID
##批量删除容器(不能删除运行的容器)
docker ps -aq | awk '{print "docker rm " $1}' | bash (awk打印)
##删除所有终止的容器
docker rm $(docker ps -a -q)
[root@cloud ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
d7d96791648b httpd "/usr/bin/bash -c ll…" 36 minutes ago Created 80/tcp romantic_turing
[root@cloud ~]# docker rm d7d96791648b
d7d96791648b
[root@cloud ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
[root@cloud ~]#