docker的常用命令
docker的常用命令
一、docker镜像常用命令
1.1 搜索镜像
docker search name :搜索远程仓库中名称类似或等于name的镜像。
aaa@qq.com-Pro ~ % docker search centos
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
centos The official build of CentOS. 5734 [OK]
ansible/centos7-ansible Ansible on Centos7 126 [OK]
jdeathe/centos-ssh OpenSSH / Supervisor / EPEL/IUS/SCL Repos - … 114 [OK]
consol/centos-xfce-vnc Centos container with "headless" VNC session… 101 [OK]
centos/mysql-57-centos7 MySQL 5.7 SQL database server 66
imagine10255/centos6-lnmp-php56 centos6-lnmp-php56 57 [OK]
tutum/centos Simple CentOS docker image with SSH access 44
centos/postgresql-96-centos7 PostgreSQL is an advanced Object-Relational … 39
kinogmt/centos-ssh CentOS with SSH 29 [OK]
pivotaldata/centos-gpdb-dev CentOS image for GPDB development. Tag names… 10
guyton/centos6 From official centos6 container with full up… 9 [OK]
nathonfowlie/centos-jre Latest CentOS image with the JRE pre-install… 8 [OK]
drecom/centos-ruby centos ruby 6 [OK]
darksheer/centos Base Centos Image -- Updated hourly 3 [OK]
mamohr/centos-java Oracle Java 8 Docker image based on Centos 7 3 [OK]
pivotaldata/centos Base centos, freshened up a little with a Do… 3
pivotaldata/centos-mingw Using the mingw toolchain to cross-compile t… 2
miko2u/centos6 CentOS6 日本語環境 2 [OK]
pivotaldata/centos-gcc-toolchain CentOS with a toolchain, but unaffiliated wi… 2
indigo/centos-maven Vanilla CentOS 7 with Oracle Java Developmen… 1 [OK]
mcnaughton/centos-base centos base image 1 [OK]
blacklabelops/centos CentOS Base Image! Built and Updates Daily! 1 [OK]
pivotaldata/centos6.8-dev CentosOS 6.8 image for GPDB development 0
pivotaldata/centos7-dev CentosOS 7 image for GPDB development 0
smartentry/centos centos with smartentry 0 [OK]
里面包括了镜像的名称,描述,星星(估计类似github的星星),是否是官方的(OFFICAL),是否是自动构建的。
1.2 下载镜像
docker pull name
aaa@qq.com-Pro ~ % docker pull tutum/centos
Using default tag: latest
latest: Pulling from tutum/centos
a3ed95caeb02: Pull complete
196355c4b639: Downloading [=> ] 2.673MB/70.56MB
edd0a8ebcd9d: Downloading [==> ] 1.526MB/37.65MB
8ba44ed17115: Waiting
69f7e70c0063: Waiting
54abd94c9217: Waiting
出现这样的字样,等待安装完成即可。
1.3 查看当前宿主机下所有的镜像
docker images 可以列出当前宿主机上所有的镜像列表。
aaa@qq.com-Pro ~ % docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
centos 7 5e35e350aded 6 weeks ago 203MB
tutum/centos latest 99a633ad346f 3 years ago 297MB
aaa@qq.com-Pro ~ %
这里是我装了两个centos的镜像。
1.4 删除镜像
docker rmi name(image id)
docker rmi -f $(docker images)
aaa@qq.com-Pro ~ % docker rmi 99a633ad346f
Untagged: tutum/centos:latest
Untagged: tutum/aaa@qq.com:b4de18abfef698f6ae3a4921d6f58edef8fc770c6ee5da7636fa4ea51ab545c5
Deleted: sha256:99a633ad346ff9debae2e18ef28e36da72c4535d936500e497cd34377173d4b6
Deleted: sha256:e72d160abbd5585d403996036763c88e9624c70d9d80d6fb0e1ccb2c49b8a26d
Deleted: sha256:8f201733668a3ce8ce77a0dc8b2d7249cdc70b1022a7fc78650527a6f3ec09b6
Deleted: sha256:8fdcefb6d553194a6881387055c1d4110bc385d3dbf4d51b0aa07f1251e877ef
Deleted: sha256:8f98c28a55c2e54cf8b8815d843cbfaf1495dd0bf601774f27da1cbe80183225
Deleted: sha256:6163e9854471a9b6c817b9514d6b8d1cf7be7684fa0c52d76d42188e28785859
Deleted: sha256:85946201865d0456e3d2db4df8699ecc017f2a8df599a1c0b241d30e8f942ed6
Deleted: sha256:3b6d6efff38bc7552b4e42d78a142460dd122efe3f86a921298e82d60f770c85
Deleted: sha256:28508c96f9bffc44568bdcf1d0cd20a0357a106a18440302ba67ee4c68a3ccad
Deleted: sha256:33b3813290610f3880214f35c32d2175adfcc75500cae48dfdbcbcf31928a1ac
Deleted: sha256:ce3c560f1cfc18c6febc0a8ed4f8330d32df64e52fa0b34b82d42ad35406ac39
Deleted: sha256:cf032be00d9aedaf94363af683f83fda44140490759c1c048584dc9b3dd1f34e
Deleted: sha256:5f70bf18a086007016e948b04aed3b82103a36bea41755b6cddfaf10ace3c6ef
二、容器的基本命令
2.1 新建并启动容器
docker run [ option ] imagename
option 可选项
- -d:表示后台运行
- -P:随机端口映射
- -p:指定端口映射,有以下四种格式
ip:hostPort:containerPort
ip:containerPort
hostPort:containerPort
containerPort - network:指定网络模式。
–network=bridge:默认模式,表示连接到默认 的网桥。
–network=host:容器使用宿主机的网络。
–network=container:Name_or_ID:告诉Docker让新建的容器使用已有容器的网络配置。
–network=none:不配置该容器的网络,用户可自定义网络。
aaa@qq.com-Pro ~ % docker run -d -p 91:80 nginx
eb244831ec15a873d994b0a762caf4b3c438af525595e7b74f72021eb867c835
意思是 后台模式运行nginx镜像 指定宿主机的91端口映射容器的80端口。我们访问 http://宿主机ip:91试试。
可以看到nginx已经启动了。
需要注意的是,如果你本地没有nginx,docker会自动去远程仓库下载。然后再启动。
2.2 查看所有运行的容器
docker ps 即可查看所有正在运行的容器 docker ps -a 可以查看所有容器。
aaa@qq.com-Pro ~ % docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
eb244831ec15 nginx "nginx -g 'daemon of…" 4 minutes ago Up 4 minutes 0.0.0.0:91->80/tcp hopeful_euclid
CONTAINER ID :表示容器id
IMAGE:镜像名称
COMMAND:表示启动容器时运行的命令。
CREATED:创建时间
STATUS:状态 up表示运行中,Exited表示已停止。
PORTS:端口。
NAMES:容器的名称,该名称是docker默认生成,也可以在docker run 的时候 用 --name指定名称。
2.3 停止容器
docker stop [ container id 或者 name]
aaa@qq.com-Pro ~ % docker stop eb244831ec15
eb244831ec15
这样表示停止成功了。
docker kill [ container id] 表示强制停止容器。
2.4 启动容器
docker start [ container id] 是启动已经存在但是被关掉的容器。不会新建。
aaa@qq.com-Pro ~ % docker start eb244831ec15
eb244831ec15
这样就启动成功了,可以再次访问nginx。
2.5 重启容器
docker restart [ container id] 实际上等于先执行了 stop 然后再 start 。
aaa@qq.com-Pro ~ % docker restart eb244831ec15
eb244831ec15
2.6 删除容器
docker rm [ container id] 只能删除已经停止的容器。否则会拒绝操作。
docker rm -f $(docker ps -a -q) 删除所有容器,慎用。
aaa@qq.com-Pro ~ % docker stop eb244831ec15
eb244831ec15
aaa@qq.com-Pro ~ % docker rm eb244831ec15
eb244831ec15
aaa@qq.com-Pro ~ %
2.7 拷贝文件
docker cp filename containerid或者name:路径
aaa@qq.com-Pro ~ % docker cp jmeter.log centos:/usr/local
aaa@qq.comacBook-Pro ~ %
然后进入 centos 去查看是否有这个文件。
使用 docker -exec 命令
aaa@qq.com-Pro ~ % docker exec -it centos /bin/bash
[aaa@qq.com /]#
可以看到已经进来了
[aaa@qq.com /]# cd /usr/local/
[aaa@qq.com local]# ls
bin etc games include jmeter.log lib lib64 libexec sbin share src
[aaa@qq.com local]#
可以看到已经复制成功了。
2.7 容器挂载
目录挂载的意思就是宿主机的目录或者文件与容器的结构和内容保持一致。通常用作修改配置文件。
在容器创建运行的时候添加 -v参数
aaa@qq.com-Pro Downloads % docker run -di -v /Users/pengweiwei/Downloads:/usr/local/Downloads --name=centos2 centos:7
7bcacd4673fe48879eea41238580f06cb1615f87460427aa683ad102da7d1631
aaa@qq.com-Pro Downloads % docker exec -it centos2 /bin/bash
[aaa@qq.com /]# cd /usr/local/Downloads/
[aaa@qq.com Downloads]# ls
BaiduNetdisk_mac_2.2.3.dmg Video sakila-db
Compressed apache-tomcat-8.5.50 sakila-db.tar.gz
Docker.dmg apache-tomcat-8.5.50.tar.gz scrt833.zip
Final_Cut_Pro_10.4__TNT_.dmg securefx833.zip
MAC???????????? googlechrome.dmg settings.zip
*X.app nginx-1.17.3.tar.gz
可以发现,已经挂载成功了。那些问号是因为容器的编码问题。在我本地是中文的。
上一篇: Docker如何通过端口来连接一个容器
下一篇: docker的常用命令(一)