# docker search imagesName
# docker rmi [-f] imageID/imagesName
-f 为强制删除
# docker pull imagesName:tag
保存单个镜像
# docker save imagesName/imageID > /path/image.tar
保存多个镜像
# docker save imagesName1/imageID1 imagesName2/imageID2 [imagesNameN/imageIDn] > /path/to/image_Name.tar
当需要把一台计算机上的镜像迁移到另一台计算机上时,需要保存镜像到本地。然后使用winscp将image.tar从机器a拷到机器b上,最后加载镜像。
# docker load -i /path/image.tar
或
# docker load < /path/image.tar
# docker push imagesName:tag/imageID
# docker run -d imagesName:tag [cmd]
# docker run -it imagesName:tag [cmd]
我们可以为每一个项目建立一个文件夹,在每个文件夹下放置1个dockerfile,并使用下面命令,手动构建镜像。
// Dockerfile在当前目录下
# docker build -t imagesName .
我们也可以使用下面命令构建镜像,或者结合docker-compose-file.yml,使用build选项自动构建镜像。
// Dockerfile在其他目录下, 绝对路径后不带Dockerfile名称
# docker build -t imageName /path/to/Dockerfile
// 查看正在运行的容器
# docker ps
// 列出最近一个运行过的容器
# docker ps -l
// 查看所有容器,包括已经停止的
# docker ps -a
// 只展示正在运行的容器ID
# docker ps -q
// 删除停止的容器1和容器2
# docker rm -f containerID1/names containerID2/names
// 删除所有容器
# docker rm $(docker ps -a -q)
// 批量删除已经处于停止状态(exit)的容器
# docker rm -f `docker ps -a |awk '{print $1}' | grep [0-9a-z]`
// 发送一个信号,等待容器的停止
# docker stop containerID/names
// 启动停止的容器
# docker start [-i] containerID/names
// 重启运行中的容器
# docker restart containerID/names
// 杀死一个容器
# docker kill containerID/names
# docker logs [-f] [-t] [--tail 数字] containerID/names
没加参数,表示查看全部日志;-f –follows=true 默认为false,表示一直更新,ctrl+c退出;-t –timestamps=true | false 加上时间戳 ; –tail 数字,指定查看最新数目的日志)
# docker commit containerID imagesName
a. 运行一次性容器
# docker run imagesName [含绝对路径的command] [arg]
容器启动一次,运行一个命令,最后停止
b. 运行交互式容器
# docker run -it imagesName [含绝对路径command]
执行容器中的命令, 就像在使用虚拟机一样,最后ctrl+p ctrl+q
,使容器在后台运行(-i –interactive=true|false,默认是false;-t –tty=true|false,默认是false)
c. 运行自定义容器
# docker run -it --name=自定义容器名 imagesName [含绝对路径的command]
d. 运行守护式容器
# docker run -d imageName [含绝对路径的command]
-d,等效于ctrl+p ctrl+q ,能够长期运行。没有交互式会话,适合运行应用程序和服务
–restart=always,自动重新启动容器
–restart=on-failure:5,指定重启次数
f. 运行守护式进程
# docker run -d --name=自定义容器名 imageName [含绝对路径command]
在后台运行守护式进程命令,执行完命令,容器依然会退出
# docker attach containerID/names
有些镜像附着会失败,使用ctrl+c退出
# docker inspect containerID/names
# docker top containerID/names
# docker exec -it containerID/names [command] [ARG]
虽然docker的哲学是一个容器运行一个进程,但是要维护容器的话,就要新启动一个进程。启动参数如下:
-I,--interactive=true|false,默认是false,启动交互式容器
-t,--tty=true|false,默认是false
--privileged,使用该参数container内的root拥有真正的root权限。若没有此参数,container内的root只是外部的一个普通用户权限。privileged启动的容器,可以看到很多host上的设备,并且可以执行mount,甚至允许你在docker容器中启动docker容器
# docker run -it --name sonar tpires/sonar-server --link mysql:db
将sonar容器连接到mysql容器,并将mysql容器重命名为db。这样,sonar就可以使用db相关的环境变量了。
# docker run -it -v /root/software/:/mnt/software/ -v /opt/dir/:/mnt/soft/ 25c5298b1a36 /bin/bash
-v:表示需要将本地哪个目录挂载到容器中,格式:-v <宿主机目录>:<容器目录>
# docker run -d -p 808:80 --name javaweb locutus1/javaweb:0.1 /root/run.sh
以下为脚本的内容
// 注意:这里必须先加载环境变量,然后使用Tomcat的运行脚本来启动Tomcat服务
# vim /root/run.sh
!/bin/bash
source ~/.bashrc
sh /opt/tomcat/bin/catalina.sh run
# chmod u+x /root/run.sh // 为运行脚本添加执行权限
# service start/stop/restart docker
# docker info
# ps -ef | grep docker
http://blog.csdn.net/feng15212780969/article/details/79612892