docker runjava
docker run [OPTIONS] IMAGE [COMMEND] [ARG...]python
OPTIONS:linux
--name=[容器新名字] :为容器指定一个名称docker
-d:后台运行容器,并返回容器ID,也即启动守护式容器centos
-i:以交互模型运行容器,一般与-t同时使用bash
-t:为容器从新分配一个伪输入终端,一般与-i同时使用app
-P:随机端口映射post
-p:指定端口映射,有如下四种格式:spa
ip:host_port:container_port.net
ip:container_port
host_port:container_port
container_port
新建启动运行一个centos镜像的实例(即容器),而且进入该容器进行交互:
neil@linux-famw:~> docker run -it centos [root@6c8275123500 /]# [root@6c8275123500 /]# [root@6c8275123500 /]# ll total 28 -rw-r--r-- 1 root root 12076 Dec 5 01:37 anaconda-post.log lrwxrwxrwx 1 root root 7 Dec 5 01:36 bin -> usr/bin drwxr-xr-x 5 root root 360 Feb 17 14:06 dev drwxr-xr-x 1 root root 1978 Feb 17 14:06 etc drwxr-xr-x 1 root root 0 Apr 11 2018 home lrwxrwxrwx 1 root root 7 Dec 5 01:36 lib -> usr/lib lrwxrwxrwx 1 root root 9 Dec 5 01:36 lib64 -> usr/lib64 drwxr-xr-x 1 root root 0 Apr 11 2018 media drwxr-xr-x 1 root root 0 Apr 11 2018 mnt drwxr-xr-x 1 root root 0 Apr 11 2018 opt dr-xr-xr-x 269 root root 0 Feb 17 14:06 proc dr-xr-x--- 1 root root 120 Dec 5 01:37 root drwxr-xr-x 1 root root 124 Dec 5 01:37 run lrwxrwxrwx 1 root root 8 Dec 5 01:36 sbin -> usr/sbin drwxr-xr-x 1 root root 0 Apr 11 2018 srv dr-xr-xr-x 13 root root 0 Feb 17 14:06 sys drwxrwxrwt 1 root root 140 Dec 5 01:37 tmp drwxr-xr-x 1 root root 106 Dec 5 01:36 usr drwxr-xr-x 1 root root 160 Dec 5 01:36 var [root@6c8275123500 /]# [root@6c8275123500 /]# [root@6c8275123500 /]#
从上面能够看到咱们进入了这个容器centos实例,root用户,6c8275123500是容器id,这里将这个id做为了容器内的主机名。
咱们在外部经过docker ps查看容器进程。
neil@linux-famw:~> docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 6c8275123500 centos "/bin/bash" 3 minutes ago Up 3 minutes elated_brown neil@linux-famw:~>
另外一边,若是咱们在容器内 但愿退出容器 并中止该容器,则输入exit。
[root@6c8275123500 /]# [root@6c8275123500 /]# [root@6c8275123500 /]# exit exit neil@linux-famw:~> neil@linux-famw:~>
docker ps [OPTIONS]
-a 列出当前全部正在运行的容器 和 历史上运行过的容器
-l 显示最近建立的容器
-n 显示最近n个建立的容器。包括正在运行的和已经中止的。
-q 静默模式,仅显示容器号。多用于与其余命令组合使用,以方便批量处理容器。
--no-trunc 不截断输出。
(本文出自oschina博主happyBKs的博文:https://my.oschina.net/happyBKs/blog/3011199)
示例以下:单个字母的参数能够连写,好比-l -q能够写成-lq
neil@linux-famw:~> docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES neil@linux-famw:~> neil@linux-famw:~> neil@linux-famw:~> neil@linux-famw:~> docker ps -l CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 6c8275123500 centos "/bin/bash" 5 minutes ago Exited (0) 39 seconds ago elated_brown neil@linux-famw:~> neil@linux-famw:~> docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 6c8275123500 centos "/bin/bash" 5 minutes ago Exited (0) 46 seconds ago elated_brown neil@linux-famw:~> neil@linux-famw:~> neil@linux-famw:~> neil@linux-famw:~> docker ps -n 3 CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 6c8275123500 centos "/bin/bash" 6 minutes ago Exited (0) About a minute ago elated_brown neil@linux-famw:~> neil@linux-famw:~> docker ps -lq 6c8275123500 neil@linux-famw:~>
咱们回过来看看容器内部的状况,则个centos没有装jdk,预装了python2。这与个人本地宿主机不一样。
neil@linux-famw:~> docker run -it --name=centos-01 centos [root@94769f89ea30 /]# [root@94769f89ea30 /]# java -version bash: java: command not found [root@94769f89ea30 /]# python Python 2.7.5 (default, Oct 30 2018, 23:45:53) [GCC 4.8.5 20150623 (Red Hat 4.8.5-36)] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> exit() [root@94769f89ea30 /]#
查看容器列表,能够看到容器id、对应的镜像名称、容器名称、建立容器的时间、容器状态等。
neil@linux-famw:~> docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 94769f89ea30 centos "/bin/bash" 11 seconds ago Up 9 seconds centos-01 neil@linux-famw:~>
Ctrl + P, Q 从容器内以不关闭容器的方式退回宿主机。这与在容器内输入exit不一样,exit是不只推出容器并且关闭结束容器。
[root@94769f89ea30 /]# [root@94769f89ea30 /]# neil@linux-famw:~> neil@linux-famw:~>
这时候能够看到这个容器还活着呢。
neil@linux-famw:~> docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 94769f89ea30 centos "/bin/bash" 10 minutes ago Up 10 minutes centos-01 neil@linux-famw:~>
docker start [容器id]
若是咱们想把一个容器启动,好比将刚才已经关闭的那个容器启动:
neil@linux-famw:~> docker ps -n 2 CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 94769f89ea30 centos "/bin/bash" 12 minutes ago Up 12 minutes centos-01 6c8275123500 centos "/bin/bash" 30 minutes ago Exited (0) 25 minutes ago elated_brown neil@linux-famw:~> neil@linux-famw:~> neil@linux-famw:~> docker start 6c8275123500 6c8275123500 neil@linux-famw:~> neil@linux-famw:~> docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 94769f89ea30 centos "/bin/bash" 12 minutes ago Up 12 minutes centos-01 6c8275123500 centos "/bin/bash" 30 minutes ago Up 9 seconds elated_brown neil@linux-famw:~>
docker restart
重启一个容器也相似:
neil@linux-famw:~> docker restart 94769f89ea30 94769f89ea30 neil@linux-famw:~> docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 94769f89ea30 centos "/bin/bash" 18 minutes ago Up 3 seconds centos-01 6c8275123500 centos "/bin/bash" 35 minutes ago Up 5 minutes elated_brown neil@linux-famw:~>
温柔型:docker stop [容器id或者容器名]
强制型:docker kill [容器id或者容器名]
neil@linux-famw:~> docker stop 94769f89ea30 94769f89ea30 neil@linux-famw:~> neil@linux-famw:~> docker kill 6c8275123500 6c8275123500 neil@linux-famw:~> neil@linux-famw:~> docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES neil@linux-famw:~>
前者慢,后者快;前者相似正常关机,后者相似拔电源。
neil@linux-famw:~> docker ps -n 2 CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 94769f89ea30 centos "/bin/bash" 25 minutes ago Exited (137) About a minute ago centos-01 6c8275123500 centos "/bin/bash" 43 minutes ago Exited (137) About a minute ago elated_brown neil@linux-famw:~> neil@linux-famw:~> docker rm 6c8275123500 6c8275123500 neil@linux-famw:~> docker ps -n 2 CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 94769f89ea30 centos "/bin/bash" 26 minutes ago Exited (137) 2 minutes ago centos-01 neil@linux-famw:~>
neil@linux-famw:~> docker rm -f 94769f89ea30 94769f89ea30 neil@linux-famw:~>
neil@linux-famw:~> docker rm -f $(docker ps -a -q)
neil@linux-famw:~> docker ps -a -q | xargs docker rm -f
xargs为linux命令可变参数