启动docker:systemctl docker start;
查看版本:docker version
docker pull 镜像名<:tags> 从远程仓库抽取镜像,可以选择版本tags,如果不选tag就自动拉去最新的镜像
docker images 看出本地镜像
docker run 镜像名<:tags> 创建容器,启动应用
docker ps -a 查看正在运行中的镜像,-a查看所有
docker rm <-f> 容器id; 删除容器,如果加-f 意思是不管容器是否运行,都强制删除
docker rmi <-f> 镜像名<:tags> 删除镜像
docker pull hello-world 拉去hello-world 镜像
docker run -p 8000:8080 tomcat ; -p宿主和容器端口映射,:前面是宿主后面是容器端口,内部是通过docker-proxy来完成的
docker run -p 8000:8080 -d tomcat; -d代表后台运行
docker stop 容器id 停止容器,再删除 docker rm 容器编号
docker rm -f 容器编号 :强制移除
生产上不建议强制删除
docker exec -it 容器id /bin/bash
it:代表交互方式执行命令
exit :退出到宿主机
容器内部其实都内置了一个linux系统,只是非常小
docker pause/unpause
docker created
doker kill
docker build -t 机构名/镜像名:版本 绝对路径或者当前目录
docker build -t mashibin.com/mywebapp:v0.1 . 构建镜像
每个容器每次创建都会被分配一个内部IP地址
docker run -d --name web tomcat ; --name很重要,给容器命别名,生产上不建议用ip做连接,万一后面Ip改了,很麻烦,所以用别名比较好
docker run -d --name database -it cenos /bin/bash
docker inspect 查看容器原数据,比如ip等
容器单向通信
docker run -d --name web --link database tomcat 这样就实现了web到database的单向通信,这样web就能Ping通database容器的ip了
容器双向通信要借用bridge 网桥(可以用link,但是太麻烦)
docker network ls
可以自己创建网桥 docker network created -d bridge my-bridge
容器连接到网桥 docker network connnect my-bridge 容器名称
volume容器间数据共享
1、通过-v挂载参数宿主目录
docker -run --name 容器名 -v 宿主路径:容器内挂载路径 镜像名
2.通过--volumes-from 共享容器内挂载点
1>创建共享容器 docker create --name webpage -v /webapps:/tomcat/webapps tomcat /bin/true ( /bin/true没任何含义,相当于占位符)
2>共享挂载点:docker run -d -p 8000:8080 --name t3 --volumes-from webpage 容器名