docker用起来还是很方便的,而且命令也容易,常用的命令如下:
docker run
docker ps
docker inspect
docker attach
….
docker run运行一个容器
Usage: docker run [OPTIONS] IMAGE [COMMAND] [ARG...] [flags]
[root@ubuntu:~]# docker run -it ubuntu /bin/bash
[root@c32ec2b3f49a:/]# ls
bin boot dev etc home lib lib64 media mnt opt proc root run sbin
srv sys tmp usr var
[root@c32ec2b3f49a:/]#
-i 为容器打开标准输出
-t 给打开的容器运行一个伪tty终端
docker ps 列出容器
[root@ubuntu:~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
c32ec2b3f49a ubuntu "/bin/bash" 2 minutes ago Up 2 minutes hopeful_bose
4f078216cfef ubuntu "/bin/bash" 47 hours ago Up 47 hours competent_sammet
41432143ef92 ubuntu "/bin/bash" 47 hours ago Up 47 hours hardcore_payne
929860f00fa4 ubuntu "/bin/bash" 47 hours ago Up 47 hours competent_perlman
d2170af637a4 centos "/bin/bash" 47 hours ago Up 47 hours epic_stallman
3ac68df6d5de ubuntu "/bin/bash" 2 days ago Up 2 days blissful_northcutt
8b9e5cc28561 ubuntu "/bin/bash" 2 days ago Up 2 days cranky_stallman
[root@ubuntu:~]# docker ps -l
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
c32ec2b3f49a ubuntu "/bin/bash" 2 minutes ago Up 2 minutes hopeful_bose
-a 列出所有的容器
-l 最新创建的容器
docker inspect列出镜像信息
Usage: docker inspect [OPTIONS] NAME|ID [NAME|ID...] [flags]
[root@ubuntu:~]# docker inspect c32ec2b3f49a
hopeful_bose
[
{
"Id": "c32ec2b3f49a5774bef44f88c00c1303d760c142fc0b528ad33c61208cf97725",
"Created": "2018-04-15T14:01:11.956052589Z",
"Path": "/bin/bash",
"Args": [],
"State": {
"Status": "running",
"Running": true,
"Paused": false,
"Restarting": false,
"OOMKilled": false,
"Dead": false,
"Pid": 6180,
"ExitCode": 0,
"Error": "",
"StartedAt": "2018-04-15T14:01:12.390885359Z",
"FinishedAt": "0001-01-01T00:00:00Z"
...
...
docker attach进入后台运行的容器
Usage: docker attach [OPTIONS] CONTAINER [flags]
[root@ubuntu:~]# docker run -it ubuntu /bin/bash
[root@40fe9f37c774:/]#
[root@40fe9f37c774:/]# root@ubuntu:~#
[root@ubuntu:~]#
注意:在刚创建的容器里,"Ctrl+d"直接退出并结束进程,使用"Ctrl+P+Q"(大写)退出不结束进程
[root@ubuntu:~]# docker attach 40fe9f37c774
[root@40fe9f37c774:/]#
[root@40fe9f37c774:/]#
docker exec 命令
Usage: docker exec [OPTIONS] CONTAINER COMMAND [ARG...] [flags]
[root@ubuntu:~]# docker run -itd ubuntu
cd92f0ec9d4018f24ee4a06edd17f38d382dbed174bc578825d72e42219f6653
[root@ubuntu:~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
cd92f0ec9d40 ubuntu "/bin/bash" 16 seconds ago Up 16 seconds upbeat_blackwell
[root@ubuntu:~]# docker exec -it cd92f0ec9d40 bash
root@cd92f0ec9d40:/# ls
bin dev home lib64 mnt proc run srv tmp var
boot etc lib media opt root sbin sys usr
[root@cd92f0ec9d40:/]# exit
[root@ubuntu:~]# docker exec -it cd92f0ec9d40 bash
[root@cd92f0ec9d40:/]#
可以看到使用了exec命令后,exit退出容器也不会停止
列出所有容器
[root@ubuntu:~]# docker container ls -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
cd92f0ec9d40 ubuntu "/bin/bash" 39 minutes ago Up 39 minu
docker export导出容器快照
[root@ubuntu:~]# docker export cd92f0ec9d40 >/tmp/ubuntu.tar
[root@ubuntu:~]# ls /tmp/
ubuntu.tar unity_support_test.0
docker import导入容器快照
[root@ubuntu:~]# cat /tmp/ubuntu.tar |docker import - test/ubuntu:v1.0
sha256:0ccd5ef276a3b175b14d9b031fba85bbdf44e8d5819a62d49564333398f0e9dc
[root@ubuntu:~]# docker image ls
REPOSITORY TAG IMAGE ID CREATED SIZE
test/ubuntu v1.0 072cd43a3a6a About a minute ago 85.8MB
docker rm 删除容器
[root@ubuntu:~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
1862e1300c97 ubuntu "/bin/bash" 46 hours ago Up 46 hours stupefied_chebyshev
4f078216cfef ubuntu "/bin/bash" 46 hours ago Up 46 hours competent_sammet
41432143ef92 ubuntu "/bin/bash" 46 hours ago Up 46 hours hardcore_payne
929860f00fa4 ubuntu "/bin/bash" 47 hours ago Up 47 hours competent_perlman
d2170af637a4 centos "/bin/bash" 47 hours ago Up 47 hours epic_stallman
3ac68df6d5de ubuntu "/bin/bash" 47 hours ago Up 47 hours blissful_northcutt
8b9e5cc28561 ubuntu "/bin/bash" 47 hours ago Up 47 hours cranky_stallman
[root@ubuntu:~]# docker container rm 1862e1300c97
Error response from daemon: You cannot remove a running container cd92f0ec9d4018f24ee4a06edd17f38d382dbed174bc578825d72e42219f6653.
Stop the container before attempting removal or force remove
注意:因为当前容器是正在运行的,所以直接停止会报错,加上参数-f,docker会发送sigkill信号给容器
[root@ubuntu:~]# docker container rm -f 1862e1300c97
1862e1300c97
[root@ubuntu:~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
4f078216cfef ubuntu "/bin/bash" 46 hours ago Up 46 hours competent_sammet
41432143ef92 ubuntu "/bin/bash" 46 hours ago Up 46 hours hardcore_payne
929860f00fa4 ubuntu "/bin/bash" 47 hours ago Up 47 hours competent_perlman
d2170af637a4 centos "/bin/bash" 47 hours ago Up 47 hours epic_stallman
3ac68df6d5de ubuntu "/bin/bash" 47 hours ago Up 47 hours blissful_northcutt
8b9e5cc28561 ubuntu "/bin/bash" 47 hours ago Up 47 hours cranky_stallman
[root@ubuntu:~]#
prune清除所有处于终止状态的容器
[root@ubuntu:~]# docker container ls -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
cd92f0ec9d40 ubuntu "/bin/bash" 46 hours ago Exited (0) 6 minutes ago upbeat_blackwell
4f078216cfef ubuntu "/bin/bash" 46 hours ago Up 46 hours competent_sammet
51783f7ff529 ubuntu "/bin/bash" 46 hours ago Exited (0) 46 hours ago competent_chebyshev
41432143ef92 ubuntu "/bin/bash" 47 hours ago Up 47 hours hardcore_payne
4e80f171f0dd ubuntu "/bin/bash" 47 hours ago Exited (0) 47 hours ago xenodochial_dijkstra
e34b31703aac ubuntu:17.10 "/bin/sh -c 'whilr t…" 47 hours ago Exited (0) 47 hours ago reverent_bhaskara
929860f00fa4 ubuntu "/bin/bash" 47 hours ago Up 47 hours competent_perlman
af27e78a0078 ubuntu "/bin/bash" 47 hours ago Exited (0) 47 hours ago goofy_hamilton
d4306e006205 ubuntu "/bin/echo ' hello w…" 47 hours ago Exited (0) 47 hours ago relaxed_albattani
6134f0d591a5 ubuntu "/bin/hello world" 47 hours ago Created determined_heisenberg
d2170af637a4 centos "/bin/bash" 47 hours ago Up 47 hours epic_stallman
3ac68df6d5de ubuntu "/bin/bash" 47 hours ago Up 47 hours blissful_northcutt
8b9e5cc28561 ubuntu "/bin/bash" 47 hours ago Up 47 hours cranky_stallman
[root@ubuntu:~]# docker container prune
WARNING! This will remove all stopped containers.
Are you sure you want to continue? [y/N] y
Deleted Containers:
cd92f0ec9d4018f24ee4a06edd17f38d382dbed174bc578825d72e42219f6653
51783f7ff529e82fa852921bfe1f567f97345e9fb2934808803954e24a24a1e9
4e80f171f0ddaebde20a79e643585e8ace4e515804b423b6da04a67bf49c346a
e34b31703aaca5931468cee0df8763d4dc78df36bb7ed5ba0e0c09729f8ec825
af27e78a00784aea88258f4d528f35c1cd616f68a76d3dbf222104061f533ba5
d4306e006205fb89b3ca64b5efe4e73591bfce0b283c208733cf1e8f5ca6fe58
6134f0d591a50ae081db0c91d6d8fc1efda0c9588424fa6890daa01a84e115b0
Total reclaimed space: 8B
可以看到终止的容器已经被清理掉了
[root@ubuntu:~]# docker container ls -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
4f078216cfef ubuntu "/bin/bash" 46 hours ago Up 46 hours competent_sammet
41432143ef92 ubuntu "/bin/bash" 47 hours ago Up 47 hours hardcore_payne
929860f00fa4 ubuntu "/bin/bash" 47 hours ago Up 47 hours competent_perlman
d2170af637a4 centos "/bin/bash" 47 hours ago Up 47 hours epic_stallman
3ac68df6d5de ubuntu "/bin/bash" 47 hours ago Up 47 hours blissful_northcutt
8b9e5cc28561 ubuntu "/bin/bash" 47 hours ago Up 47 hours cranky_stallman
[root@ubuntu:~]#
docker stop停止一个容器
[root@ubuntu:~]# docker run -it ubuntu /bin/bash
[root@2a1de0464580:/]#
[root@ubuntu:~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
2a1de0464580 ubuntu "/bin/bash" 41 seconds ago Up 40 seconds romantic_bhaskara
[root@ubuntu:~]# docker stop 2a1de0464580
2a1de0464580
docker search拉取镜像
[root@ubuntu:~]# docker search centos
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
centos The official build of CentOS. 4188 [OK]
ansible/centos7-ansible Ansible on Centos7 108 [OK]
jdeathe/centos-ssh CentOS-6 6.9 x86_64 / CentOS-7 7.4.1708 x86_… 94 [OK]
consol/centos-xfce-vnc Centos container with "headless" VNC session… 52 [OK]
imagine10255/centos6-lnmp-php56 centos6-lnmp-php56 40 [OK]
tutum/centos Simple CentOS docker image with SSH access 38
gluster/gluster-centos Official GlusterFS Image [ CentOS-7 + Glust… 26 [OK]
centos/mysql-57-centos7 MySQL 5.7 SQL database server 23
openshift/base-centos7 A Centos7 derived base image for Source-To-I… 22
kinogmt/centos-ssh CentOS with SSH 19 [OK]
centos/python-35-centos7 Platform for building and running Python 3.5… 19
centos/postgresql-96-centos7 PostgreSQL is an advanced Object-Relational … 12
openshift/jenkins-2-centos7 A Centos7 based Jenkins v2.x image for use w… 11
centos/httpd-24-centos7 Platform for running Apache httpd 2.4 or bui… 10
openshift/mysql-55-centos7 DEPRECATED: A Centos7 based MySQL v5.5 image… 6
openshift/wildfly-101-centos7 A Centos7 based WildFly v10.1 image for use … 3
openshift/jenkins-1-centos7 DEPRECATED: A Centos7 based Jenkins v1.x ima… 3
pivotaldata/centos-gpdb-dev CentOS image for GPDB development. Tag names… 3
pivotaldata/centos Base centos, freshened up a little with a Do… 1
pivotaldata/centos-mingw Using the mingw toolchain to cross-compile t… 1
blacklabelops/centos CentOS Base Image! Built and Updates Daily! 1 [OK]
openshift/php-55-centos7 DEPRECATED: A Centos7 based PHP v5.5 image f… 1
pivotaldata/centos-gcc-toolchain CentOS with a toolchain, but unaffiliated wi… 0
smartentry/centos centos with smartentry 0 [OK]
jameseckersall/sonarr-centos Sonarr on CentOS 7 0 [OK]
root@ubuntu:~#
可以看到拉取的镜像返回了很多内容,包括:镜像名称,描述,收藏数,是否是官方创建,是否为自动创建
列出所有镜像
Usage: docker images [OPTIONS] [REPOSITORY[:TAG]]
[root@ubuntu:~]# docker images -a
REPOSITORY TAG IMAGE ID CREATED SIZE
test/ubuntu v1.0 072cd43a3a6a About an hour ago 85.8MB
<none> <none> 0ccd5ef276a3 46 hours ago 85.8MB
ubuntu latest c9d990395902 2 days ago 113MB
ubuntu 17.10 14107f6d2c97 2 days ago 99.1MB
centos latest e934aafc2206 8 days ago 199MB
[root@ubuntu:~]#
-a 显示所有镜像
-q 显示镜像ID
docker pull下载镜像到本地
[root@ubuntu:~]# docker pull centos
Using default tag: latest
latest: Pulling from library/centos
Digest: sha256:989b936d56b1ace20ddf855a301741e52abca38286382cba7f44443210e96d16
Status: Image is up to date for centos:latest
root@ubuntu:~#