镜像命令
# www.dmbetter.cn
# 下载镜像 alpine 微型发行版本
docker image pull nginx:1.14-alpine
# 列出镜像
docker image ls
# 删除镜像
docker image rm nginx
#第三方
docker pull quay.io/coreos/flannel
容器命令
# www.dmbetter.cn
# 创建容器
docker container create
# 列出容器
docker container ls
# 启动容器
docker container start
# 停止容器
docker container stop
# 强行停止容器
docker container kill
# 创建并启动容器
docker container run
# 删除容器
docker container rm
# 暂停/取消暂停容器
docker container pause/unpause
# 根据资源消耗排序容器
docker container top
docker run exit 退出
--name 容器的名称 -t 开启终端 -i 交互 docker run --name b1 -it busybox:latest # -d 后台守护进程 docker run --name web1 -d nginx:1.14-alpine
docker ps
# 查看当前启动的容器 docker ps
# 查看所有的容器 docker ps -a
docker start
# -i -a 开启终端 如果是进程可以不加 docker start -i -a b1
docker inspect 用于获取容器/镜像的元数据
docker exec 在容器中执行另外命令
docker exec -it redis1 /bin/sh
docker logs 查看容器日志
docker logs web1
镜像管理
基于容器制作镜像
# step1 运行一个镜像
docker run --name b1 -it busybox
# step2 一些自定义的配置
mkdir -p /data/html
vi /data/html/index.html
# step3 保持容器运行 重新打开一个窗口 或者后台运行
docker commit -p b1 #p 暂停容器 防止容器运行时生成一半文件 --pause
# step4 查看生成的镜像
docker image ls
# step5 打上标签 964.. 为image ID 一个镜像可以有多个标签 一个标签只有一个镜像
# 如果不是要推送到dockerhub 前面还需要加上镜像服务器地址
docker tag 964c8600c6bb leeway/httpd:v0.1-1
docker tag 964c8600c6bb leeway/httpd:latest
docker tag 964c8600c6bb registry.cn-beijing.aliyuncs.com leeway/httpd:v0.1-1
# step6 可以删除镜像
docker image rm leeway/httpd:v0.1-1
详细版
-a 指定作者邮箱 -c 更改元数据? 列表内的是参数 CMD指运行容器时默认执行的命令
docker commit -a "leeway <wangttp@qq.com>" -c 'CMD ["/bin/httpd","-f","-h","/data/html"]' -p b1 leeway/httpd:v0.2
发布到docker hub
用户名需要和镜像名一致才能push 比如leeway/htttpd dockerhub 用户名也需要是leeway
首先要登陆到docker hub ->docker login [OPTIONS] [SERVER]
docker login -u leeway -p xxxxx
docker login -u leeway -p xxxxx registry.cn-beijing.aliyuncs.com
# 推送
docker push leeway/httpd
docker push registry.cn-beijing.aliyuncs.com/leeway/httpd
# 登出
docker logout
两台服务器共享镜像 镜像打包 docker save docker load
# 打包镜像
docker save -o myimages.gz leeway/httpd:latest leeway/httpd:v0.2
# 发送到另外一台服务器
scp myimages.gz yourip:/root/
# 登陆另一台服务器
# docker load
docker load myimage.gz
- manage volumes docker 管理的券
docker run --name b2 -it -v /data busybox
绑定挂载券
# host 地址写在前面 --rm 关闭时删除 docker run --name b2 -it --rm -v /data/volumes/b2:/data busybox
当两个或多个容器都挂载到宿主机的同一个目录时就相当于两个容器共享文件
#创建一个基础的容器
docker run --name infracon -it -v /data/infracon/volume/:/data/web/html busybox
# 基于基础容器创建 一个nginx 容器 --network 加入到这个网络中 --volumes-from 共享相同的券
docker run --name nginx --network container:infracon --volumes-from infracon -it busybox