docker - 命令

 

docker使用yum安装,详见官方文档

docker服务管理:

systemctl restart docker

systemctl start docker

systemctl stop docker

systemctl status docker

镜像相关命令:

#镜像列表
docker images

#只查看镜像id列表
docker images -q

#镜像搜索
docker search [name]

#镜像拉取
docker pull [imageUrl:tag]

#镜像删除
docker rmi [name:tag|imageId]

#删除全部镜像
docker rmi `docker images -q`

#查看镜像详细信息
docker inspect [image:tag]

容器相关命令:

相关选项说明:

  • -i:保持容器运行,通常与-t同时使用,容器创建后自动进入容,退出容器后容器自动关闭
  • -t:为容器重新分配一个伪输入终端
  • -d:以守护进行模式创建容器
  • --name:给容器命名
#启动容器
docker run [image:tag]

#启动并进入容器内部,退出后容器也关闭  --name 设置容器名称
docker run -it --name=c1 iamge:tag /bin/bash

#查看正在运行的容器列表
docker ps

#查看所有容器列表 包括历史容器
docker ps -a

#后台启动容器(-d) 不进入容器内部
docker run -id --name=c1 image:tag

#进入容器内部
docker exec -it imageId /bin/bash

#关闭容器
docker stop [容器名或容器id]

#启动容器
docker start [容器名或容器id]

#删除容器
docker rm [容器id或容器名称]

#查看所有容器id列表
docker ps -aq

#删除所有容器
docker rm `docker ps -aq`

#查看容器参数
docker inspect [容器id或名称]

注意:正在运行的容器无法删除

容器存储卷相关命令

#启动容器时创建挂载卷  容器关闭后挂载目录依然存在
docker run -id --name=c1 -v /宿主机目录:/容器内目录 image:tag

#数据卷容器 宿主机上的挂载目录由docker自动分配
docker run -id --name=c3 -v /容器内目录 image:tag /bin/bash

#挂载数据卷容器
docker run -id --name=c2 --volumes-from c3 image:tag /bin/bash


部署应用案例

mysql

-e: 给容器环境添加环境变量

docker run -id -p 3307:3306 \
--name=mysqln \
-v /home/mysql/conf:/etc/mysql/conf.d \
-v /home/mysql/logs:/logs \
-v /home/mysql/data:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=123123 \
mysql:5.7

镜像制作

容器转镜像

此操作不会将容器挂载的文件打包到镜像

但在容器内创建的文件会打包到镜像内

docker commit [容器id] [image:tag]

镜像导出为压缩包

docker save -o  [target.tar]  [image:tag]

从压缩包导入镜像

docker load -i [target.tar]

DockerFile文件创建镜像

docker build -f [dockerfile] -t [image:tag] [targetDir]

镜像打标签:上传到本地仓库

新的镜像名中一般包含仓库url和目录:192.168.18.3/library/image:latest

docker tag [oldImage:tag] [newImage:tag]

镜像推送到仓库

docker push [newImageTag]

Dockerfile编写相关

一般来说,应该会将 Dockerfile 置于一个空目录下,或者项目根目录下。如果该目录下没有所需文件,那么应该把所需文件复制一份过来。如果目录下有些东西确实不希望构建时传给 Docker 引擎,那么可以用 .gitignore 一样的语法写一个 .dockerignore,该文件是用于剔除不需要作为上下文传递给 Docker 引擎的

Dockerfile 的文件名并不要求必须为 Dockerfile,而且并不要求必须位于上下文目录中,比如可以用 -f ../Dockerfile.qf 参数指定某个文件作为 Dockerfile。


通过dockerfile的 VOLUME 指令可以在镜像中创建挂载点,这样只要通过该镜像创建的容器都有了挂载点。

还有一个区别是,通过 VOLUME 指令创建的挂载点,无法指定主机上对应的目录,是自动生成的

FROM ubuntu
MAINTAINER hello1
VOLUME ["/data1","/data2"]

docker 网络

可以查看网络列表

docker network ls

查看对应网络的配置。

docker network inspect <container id>
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值