创建容器:
docker create 常用参数:
--name:为容器分配一个名字
-v | --volume :为容器绑定安装一个卷,例如-v /data 会为容器创建一个/data分区出来
例如:
# docker create -it ubuntu:latest
2434968ec612b085b4b34e93f9858fdc36fb94e2a4527966a14ef93e1a18a00f
# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
2434968ec612 ubuntu:latest "/bin/bash" 3 seconds ago Created mystifying_proskuriakova 启动容器
docker start 使用docker create创建的容器处于停止状态,可以使用docker start命令启动
# docker start mystifying_proskuriakova
# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
2434968ec612 ubuntu:latest "/bin/bash" About a minute ago Up 3 seconds mystifying_proskuriakova 停止容器
docker stop [-t|--time[=10]] [CONTAINER...] 首先向容器发送SIGTERM信号,等待超过一段时间后(默认为10秒)后,再发送SIGKILL信号来终止容器 重启容器
docker restart 进入容器:
attach
使用-d参数时,容器启动后会进入后台,用户无法看到容器中的信息,这时候要进入容器可以使用attach或者exec或者第三方的nsenter工具等。
docker attach [--detach-keys[=[]]] [--no-stdin] [--sig-proxy[=true]] CONTAINER --detach-keys[=[]]:指定退出attach模式的快捷键序列,默认是CTRL-p CTRL-q
--no-stdin=true | false:是否关闭标准输入,默认是保持打开。
--sig-proxy=true | false :是否代理收到的系统信息给应用进程,默认为true
如:
##创建并启动一个容器 名为test
# docker run -itd --name test ubuntu:latest
3a4a6614acbfc820f5da3983527e3e585946f27393fab17b1ce09adb7c757206
##查看容器进程
[root@OPS01-LINTEST02 ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
3a4a6614acbf ubuntu:latest "/bin/bash" 4 seconds ago Up 3 seconds test
##连接到该容器
[root@OPS01-LINTEST02 ~]# docker attach test
root@3a4a6614acbf:/# ls
bin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var 注意:使用attach连接到容器时,如果多个窗口同时使用attach连接到同一个容器时,所有窗口都会同步显示。当某个窗口因命令阻塞时,其他窗口也无法执行操作
例如:
进入到前面创建的容器中
docker exec -it test /bin/bash 在容器中执行ls命令
root@3a4a6614acbf:/# ls
bin dev home lib64 mnt proc run srv tmp var
boot etc lib media opt root sbin sys usr nsenter进入容器
例如:
# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
3a4a6614acbf ubuntu:latest "/bin/bash" 41 minutes ago Up 25 minutes test
# docker export -o test_for_run.tar test
# ls
test_for_run.tar 导出之后,就可以将文件上传到其他机器上,使用导入命令导入到系统中,从而实现容器的迁移
2、导入容器
导出的test_for_run.tar文件可以使用import命令导入变成镜像,该命令格式为:
docker import [-c --change[=[]]] [-m|--message[=MESSAGE]] file|URL|-REPOSITORY[:TAG] 用户可以通过-c,--change=[] 选项在导入的同时执行对容器进行修改的Dockerfile指令
# docker import test_for_run.tar ubuntu:v1.0
sha256:2c82ae3a0afe67122ce5fabe397025bc19bffef5c2a6b873098567846c00cfdc
# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
ubuntu v1.0 2c82ae3a0afe 1 second ago 69.8MB
ubuntu v1 c4af03e0f787 22 hours ago 87MB
ubuntu 14.04 578c3e61a98c 7 days ago 223MB
ubuntu latest 113a43faa138 7 days ago 81.1MB
nginx latest cd5239a0906a 7 days ago 109MB
centos 7 49f7960eb7e4 8 days ago 200MB
centos latest 49f7960eb7e4 8 days ago 200MB
centos 6 70b5d81549ec 2 months ago 195MB 容器高级功能配置
配置容器的DNS和主机名
--dns=IP_ADDR:指定容器的DNS地址,默认使用和宿主机一样的DNS服务器地址
--host HOSTNAME,-h HOSTNAME:配置容器的主机名,默认使用容器ID为主机名
--name:配置容器名称,例如 --name webserver