docker run centos echo "hello word" #在docker容器中运行hello world!
docker run centos yum install ntpdate #在容器中安装ntpdate的程序
#创建一个后台运行的80端口映射的,本地挂载目录的ubuntu系统
docker run -itd --name -p 80:80 -v /opt/tomcat:/opt ubuntu_nginx ubuntu:14.04 /bin/bash
docker ps -l #命令获得最后一个容器的id
docker ps -a #查看所有的容器。
docker commit 容器名称 #提交刚修改的容器,例如:
docker run -i -t centos /bin/bash #在容器里启动一个/bin/bash shell环境,可以登录进入操作,其中-t 表示打开一个终端的意思,-i表示可以交互输入。
docker run -d -i -t centos /bin/bash #在后台启动,退出要ctrl+P、Q才能继续后台,不能exit,exit就相当于关闭容器
docker attach CONTAINER ID #进入在后台启动后的这个容器
docker exec -it <CONTAINER ID> /bin/bash #这样你就进到这个container 里面了,这个bash退出也不会影响之前 docker run 启动的 bash/
docker run -d centos:v1 /bin/bash #-d表示在后台启动,以daemon方式启动。
docker run -d -p 80:80 -p 8022:22 centos:latest /usr/bin/sshd -D #端口映射
docker port 容器名 #查看端口映射情况
docker stop 容器名 #正常关闭容器
docker kill 容器名 #直接kill掉进程
docker start id # 启动某个容器,也可以改为docker start -i 容器名称
docker rm id #删除容器 d.排bug常用:
docker inspect id #查看容器、镜像状态
docker logs -tf --tail 10 容器名 #最近10行容器内部运行情况
docker top 容器名 #查看运行中容器的进程 7、Docker独立IP及容器互联 Ubuntu部分
apt-get install bridge-utils #安装brctl安装包
service docker stop #停止docker
ifconfig docker0 down #停止网卡
brctl show #查看物理机上有哪些网桥
brctl delbr docker0 #删除docker的默认网桥
brctl addbr br0 #自定义网桥
ifconfig br0 192.168.180.22 netmask 255.255.255.0 #给网桥指定IP和子网
vim /etc/default/docker #修改docker启动桥接
DOCKER_OPTS="$DOCKER_OPTS -b=br0"
service docker start #启动docker
brctl show #查看是否生效 Centos部分
service docker stop
ifconfig docker0 down
brctl delbr docker0
cd /etc/sysconfig/network-scripts/
vi ifcfg-eth0
DEVICE=eth0
BOOTPROTO=none
ONBOOT=yes
TYPE=Ethernet
BRIDGE="br0"
BOOTPROTO=static
vi ifcfg-br0
DEVICE="br0"
ONBOOT=yes
NM_CONTROLLED=no
BOOTPROTO=static
TYPE=bridge
IPADDR=192.168.1.165
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
DNS=192.168.1.50
vi /etc/sysconfig/docker
other_args="-b=br0"
service docker start
[root@localhost ~]# ps -ef|grep docker
root 5502 1 0 01:23 pts/3 00:00:00 /usr/bin/docker -d -b=br0
root 5800 5311 0 01:47 pts/3 00:00:00 grep docker
service network restart
可能会报以下错误:
Shutting down interface eth0: [ OK ]
Shutting down loopback interface: [ OK ]
Bringing up loopback interface: [ OK ]
Bringing up interface br0: Determining if ip address 192.168.1.161 is already in use for device br0...
[ OK ]
Bringing up interface eth0: Error: Connection activation failed: Master connection not found or invalid
[FAILED]
解决方法:
此时,当前网卡也是可以通信的,但是通过网络管理工具修改IP之后,当前修改操作是不会生效的。那如何消除这个提示呢?
其实,问题的原因是RedHat自己开发的NetworkManager管理工具和/etc/sysconfig/network-scripts/ifcfg-ethx配置不同步造成的。如果要消除这个提示,请关闭NetworkManager
服务即可:
chkconfig NetworkManager off
service NetworkManager stop
Stopping NetworkManager daemon: [ OK ]
此时,再重新加载network服务即可:
service network restart
Shutting down interface br0: [ OK ]
Shutting down loopback interface: [ OK ]
Bringing up loopback interface: [ OK ]
Bringing up interface br0: Determining if ip address 192.168.1.161 is already in use for device br0...
[ OK ]
Bringing up interface eth0: device eth0 is already a member of a bridge; can't enslave it to bridge br0.
[ OK ]