6、执行用户指定的应用程序;
7、程序执行完成后,容器即终止;
对于交互式模式启动的容器,终止可使用exit命令或者crtl+d
logs命令:获取一个容器的日志,获取其输出信息;
[root@docker-vm ~]# docker logs 73f8bba68272
/ # ifconfig
eth0 Link encap:Ethernet HWaddr 02:42:AC:11:00:02
inet addr:172.17.0.2 Bcast:0.0.0.0 Mask:255.255.0.0
inet6 addr: fe80::42:acff:fe11:2/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:8 errors:0 dropped:0 overruns:0 frame:0
TX packets:8 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:648 (648.0 B) TX bytes:648 (648.0 B)
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
/ # ps
PID USER TIME COMMAND
1 root 0:00 /bin/sh
7 root 0:00 ps
docker ps:列出当前宿主机中运行的容器
[root@docker-vm ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
731525df2a5d busybox:latest "/bin/sh" About a minute ago Up About a minute goofy_mcclintock docker 常用命令:
环境相关info,version
[root@docker-vm ~]# docker info
Containers: 1
Running: 0
Paused: 0
Stopped: 1
Images: 1
Server Version: 1.10.3 #docker版本号
Storage Driver: devicemapper
Pool Name: docker-253:0-135130169-pool
Pool Blocksize: 65.54 kB
Base Device Size: 10.74 GB
Backing Filesystem: xfs
Data file: /dev/loop0
Metadata file: /dev/loop1
Data Space Used: 22.48 MB
Data Space Total: 107.4 GB
Data Space Available: 52.49 GB
Metadata Space Used: 593.9 kB
Metadata Space Total: 2.147 GB
Metadata Space Available: 2.147 GB
Udev Sync Supported: true
Deferred Removal Enabled: false
Deferred Deletion Enabled: false
Deferred Deleted Device Count: 0
Data loop file: /var/lib/docker/devicemapper/devicemapper/data
WARNING: Usage of loopback devices is strongly discouraged for production use. Either use `--storage-opt dm.thinpooldev` or use `--storage-opt dm.no_warn_on_loop_devices=true` to suppress this warning.
Metadata loop file: /var/lib/docker/devicemapper/devicemapper/metadata
Library Version: 1.02.107-RHEL7 (2015-10-14)
Execution Driver: native-0.2
Logging Driver: journald
Plugins:
Volume: local
Network: null host bridge
Kernel Version: 3.10.0-327.el7.x86_64 #kernel版本信息
Operating System: CentOS Linux 7 (Core)
OSType: linux
Architecture: x86_64
Number of Docker Hooks: 2
CPUs: 24 #cpu核心数
Total Memory: 125.7 GiB #主机内存大小
Name: docker-vm
ID: Z4Q6:MROS:ES5N:SYVJ:HOKQ:BOMI:DXRZ:PX7L:AMF4:OMO4:3YMC:TBLC
WARNING: bridge-nf-call-iptables is disabled
WARNING: bridge-nf-call-ip6tables is disabled
Registries: docker.io (secure) docker version列出版本相关信息
[root@docker-vm ~]# docker version
Client:
Version: 1.10.3
API version: 1.22
Package version: docker-common-1.10.3-46.el7.centos.14.x86_64
Go version: go1.6.3
Git commit: cb079f6-unsupported
Built: Fri Sep 16 13:24:25 2016
OS/Arch: linux/amd64
Server:
Version: 1.10.3
API version: 1.22
Package version: docker-common-1.10.3-46.el7.centos.14.x86_64
Go version: go1.6.3
Git commit: cb079f6-unsupported
Built: Fri Sep 16 13:24:25 2016
OS/Arch: linux/amd64 系统维护相关:images,inspect,bulid,commit,pause/unpause,ps,rm,rmi,run,start/stop/restart,top,kill
日志信息相关:event,history,logs
Docker hub服务相关:login,logout,pull,push.search
例子:docker kill 一个容器
[root@docker-vm ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
cfe1c1f31d40 centos:latest "/bin/bash" 3 minutes ago Up 3 minutes admiring_almeida
[root@docker-vm ~]# docker kill cfe1c1f31d40
cfe1c1f31d40
[root@docker-vm ~]# docker ps
CONTAINER ID IMAGE 例子:docker ps -a 列出所有镜像文件,包括已退出的镜像
root@docker-vm ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
cfe1c1f31d40 centos:latest "/bin/bash" 9 minutes ago Exited (137) 6 minutes ago admiring_almeida
731525df2a5d busybox:latest "/bin/sh" 23 minutes ago Exited (0) 31 minutes ago goofy_mcclintock docker run --rm 当容器退出时自动删除此容器
[root@docker-vm ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
cfe1c1f31d40 centos:latest "/bin/bash" 9 minutes ago Exited (137) 6 minutes ago admiring_almeida
731525df2a5d busybox:latest "/bin/sh" 23 minutes ago Exited (0) 31 minutes ago goofy_mcclintock
[root@docker-vm ~]# docker rm 731525df2a5d
731525df2a5d
[root@docker-vm ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
cfe1c1f31d40 centos:latest "/bin/bash" 13 minutes ago Exited (137) 9 minutes ago admiring_almeida docker commit创建一个修改后的容器镜像。创建一个用户
[root@docker-vm ~]# docker run -it centos:latest /bin/bash
[root@7cef59f68ead /]# useradd bjia
[root@7cef59f68ead /]# id bjia
uid=1000(bjia) gid=1000(bjia) groups=1000(bjia)
[root@docker-vm ~]# docker ps #查看这个镜像的ID
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
7cef59f68ead centos:latest "/bin/bash" 9 minutes ago Up 8 minutes grave_pike
[root@docker-vm ~]# docker commit 7cef59f68ead centos:newuser #创建一个名叫centos:newuser的容器镜像。
sha256:8c65e1448eb970ee1173a4b2f67ac31164ac94109e8b3ba1c2cef2addc4188fb
[root@docker-vm ~]# docker images #查看后已经创建了新的newuser的镜像。
REPOSITORY TAG IMAGE ID CREATED SIZE
centos newuser 8c65e1448eb9 9 seconds ago 196.7 MB
docker.io/busybox latest e02e811dd08f 3 weeks ago 1.093 MB
docker.io/centos latest 980e0e4c79ec 7 weeks ago 196.7 MB 停止和删除之前的centos容器
[root@docker-vm ~]# docker kill 7cef59f68ead
7cef59f68ead
[root@docker-vm ~]# docker rm 7cef59f68ead 创建一个刚刚建立id=bjia的centos容器。可以看到bjia这个用户存在的。这就是commit的作用
[root@docker-vm ~]# docker run -it --rm centos:newuser /bin/bash
[root@4bf44b9af9dc /]# id bjia
uid=1000(bjia) gid=1000(bjia) groups=1000(bjia)
六、docker私有仓库
在另外一台机器上安装docker-registry
[root@node2 ~]# yum -y install docker-registry
#启动服务
[root@node2 ~]# systemctl start docker-registry.service
默认监听在5000端口上。
State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN 0 128 *:5000 *:*
LISTEN 0 128 对一个本地的镜像打一个TAG,名字叫busybox:1.2.1
[root@node1 ~]# docker images;
REPOSITORY TAG IMAGE ID CREATED SIZE
docker.io/registry latest c9bd19d022f6 2 weeks ago 33.27 MB
docker.io/busybox latest e02e811dd08f 4 weeks ago 1.093 MB
[root@node1 ~]# docker tag e02e811dd08f 192.168.254.17:5000/busybox:1.2.1 push一个镜像到私有仓库,直接push会报错,如下:
[root@node1 ~]# docker push 192.168.254.17:5000/busybox:1.2.1
The push refers to a repository [192.168.254.17:5000/busybox]
unable to ping registry endpoint https://192.168.254.17:5000/v0/
v2 ping attempt failed with error: Get https://192.168.254.17:5000/v2/: dial tcp 192.168.254.17:5000: getsockopt: no route to host
v1 ping attempt failed with error: Get https://192.168.254.17:5000/v1/_ping: dial tcp 192.168.254.17:5000: getsockopt: no route to host 因为默认使用https协议进行连接。如果不想用https访问可以如下修改
vim /etc/sysconfig/docker
ADD_REGISTRY='--add-registry 192.168.254.17:5000' #添加一个仓库IP地址和端口
INSECURE_REGISTRY='--insecure-registry 192.168.254.17:5000' #启用非安全方式连接
[root@node1 ~]# systemctl restart docker #重启服务生