如何打包创建镜像和运行Docker容器及常用命令

如何写Dockerfile参考:
http://dockone.io/article/131
https://docs.docker.com/engine/reference/builder/

相关主机和地址


主要命令

查看本地已有镜像
docker images
如:
10.10.36.213:root @ docker-registry :/root/Dockerfile/jetty/jetty-1.8.45]# docker images
REPOSITORY                                   TAG                 IMAGE ID            CREATED             SIZE
10.10.36.213/library/tdaajdk7                v1.13               73c1db03b30c        3 hours ago         696.2 MB
10.10.36.213/library/tdaajdk7                v1.11               99268829471a        19 hours ago        696.2 MB
10.10.36.213/library/tdaajdk7                v1.10               b5308b7f7c41        20 hours ago        696.2 MB
10.10.36.213/library/tdaajdk7                v1.9                0818f66669cb        20 hours ago     616.8 MB

build镜像

在Dockerfile所在目录执行
docker build -t 10.10.36.213/library/你的镜像名:版本 .
别忘了最后的点,用来指定Dockerfile的位置
build过程类似这样:
cos@controller ~/Dockerfile/eureka $ docker build -t 10.10.36.213/library/test:v1.0 .
Sending build context to Docker daemon 78.69 MB
Step 1 : FROM 192.168.16.100/jdk8:8u74
 ---> d84b155276a9
Step 2 : MAINTAINER jingchaosong [email protected]
 ---> Using cache
 ---> 369126ee2c40
Step 3 : ADD eureka-server-1.1-SNAPSHOT.jar /root/
 ---> Using cache
 ---> cd3facb762b3
Successfully built cd3facb762b3

push镜像

docker push 10.10.36.213/library/你的镜像名:版本
如果出现push失败的情况,并且提示需要的登录,请使用以下命令login到私有镜像仓库
docker login 10.10.36.213
用户名admin
密码Harbor12345
email可以不填

run容器

直接以daemon方式运行
docker run -d --net=mynet 10.10.36.213/library/你的镜像名:版本 命令
--net=mynet是让docker调用我们自己的网络插件来分配IP地址,IP地址从我们自己配置的IP池里获取
查看启动的容器的IP地址可以用以下命令
docker inspect container_id | grep IPAddress

交互方式运行
docker run -it --net=mynet 10.10.36.213/library/你的镜像名:版本

docker run的时候可以加很多参数,如容器的资源配额限制、hostname、挂载本地目录、DNS等配置,请参看docker run --help

查看容器状态

查看正在运行的容器的状态
docker ps

查看所有容器(包括已经Exit容器的状态)
docker ps -a

删除容器

docker rm container_id
container_id只需要前几位字符就可以了,只要能够区别不同容器即可,不需要输入全部ID字段

强制删除容器
docker rm -f container_id

删除镜像

docker rmi image_id

进入容器内部

前提是必须是正在运行的容器
docker exec -it container_id /bin/bash
运行exit退出

查看容器详细信息

docker inspect container_id
可以看到容器的配置信息和挂载的本地目录、网络配置、状态等

镜像制作注意事项

Dockerfile与打包镜像所需的资源都放在同一目录下,如果add tar.gz包,build镜像的时候,tar包可以自动解压到对应目录中,添加目录的话使用./xxx /dir/to/des/     

目前的docker集群使用swarm手动管理,在10.10.36.213上run的容器实际上上运行在10.10.0.85或86这两台主机上。
使用docker info可以查看这两台主机的信息

你可能感兴趣的:(docker,docker)