一、Docker的常见使用

1、docker的使用
1.1 查看docker版本号信息
docker version
docker info
1.2 启动docker
systemctl start docker
1.3 关闭docker
systemctl stop docker
1.4 重启docker
systemctl restart docker
1.5 docker设置随服务启动而自启动
systemctl enable docker
1.6 查看docker运行状态
systemctl status docker
2、Docker 容器使用
2.1 启动容器
docker run -it 镜像名 /bin/bash
docker run -it 镜像名:Tag /bin/bash
# -i: 交互式操作。
# -t: 终端。
# /bin/bash:放在镜像名后的是命令,这里我们希望有个交互式 Shell,因此用的是 /bin/bash。
2.2 容器内直接退出
exit
2.3 查看正在运行容器列表
docker ps
2.4 查看所有容器
docker ps -a 
2.5 启动一个已停止的容器
docker start 容器ID/容器名
2.6 停止容器
docker stop 容器ID/容器名
2.7 重启容器
docker restart 容器ID/容器名
2.8 kill 容器
docker kill 容器ID/容器名
2.9 删除容器
删除一个:docker rmi -f 镜像名/镜像ID
删除多个:docker rmi -f 镜像名/镜像ID 镜像名/镜像ID
删除全部镜像:docker rmi -f $(docker images -aq)
# -a 意思为显示全部
# -q 意思为只显示ID
强制删除镜像:docker image rm 镜像名称/镜像ID
清除所有无容器使用的镜像:docker system prune -a
3、docker镜像的使用
3.1 查看docker镜像列表
docker images
# REPOSITORY:表示镜像的仓库源
# TAG:镜像的标签
# IMAGE ID:镜像ID
# CREATED:镜像创建时间
# SIZE:镜像大小
3.2 获取镜像
docker pull 镜像名
docker pull 镜像名:tag
3.3 搜索镜像
docker search 镜像名
3.4 保存镜像
docker save 镜像名/镜像ID -o 镜像保存在哪个位置与名字
3.5 加载镜像
docker load -i 镜像保存文件位置
3.6 测试镜像功能是否正常
docker run 镜像名
3.7 设置镜像标签
docker tag 镜像ID 镜像名:tag 
3.8 更换容器名
docker rename 容器ID/容器名 新容器名
4、docker的其他操作
4.1 修改容器内的文件
# 从容器内拷出
docker cp 容器ID/名称:容器内路径 容器外路径
# 从外部拷贝文件到容器内
docker cp 容器外路径 容器ID/名称:容器内路径
4.2 查看容器日志
docker logs -f --tail=要查看末尾多少行 默认all 容器ID
4.3 docker网络重启
# 启动
systemctl start docker
# 守护进程重启
systemctl daemon-reload
# 重启docker服务
systemctl restart docker / service docker restart
# 关闭
docker service docker stop / docker systemctl stop docker
4.4 挂载路径

① 指定目录挂载

docker run -it -v 主机目录1:容器内目录1 -v 主机目录2:容器内目录2
# -v 主机目录:容器内目录

② 匿名挂载

docker run -d -P --name nginx01 -v /etc/nginx nginx
# -v 容器内路径(挂在不指定宿主机目录,也不使用卷名,在-v只写了容器内的路径,没有写容器外的路劲)

③ 容器之间目录挂载

#1.命令
--volumes-from 容器名或id #2.实例
docker run -d -p 3306:3306 -v /home/mysql/conf:/etc/mysql/conf.d -v /home/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 --name mysql01 mysql:5.7
docker run -d -p 3307:3306 -e MYSQL_ROOT_PASSWORD=123456 --name mysql02 --volumes-from mysql01 mysql:5.7
# 这个时候,可以实现两个容器数据同步! #3.实例
docker run -it --name dc01 zzyy/centos
docker run -it --name dc02 --volumes-from dc01 zzyy/centos
docker run -it --name dc03 --volumes-from dc01 zzyy/centos
4.5 添加环境变量

① dockerfile 添加环境变量

# dockerfile ENV 设置环境变量,该方式直接将变量生成到镜像中
ENV PATH=/usr/loca/mysql/bin:$PATH LD_LIBRARY_PATH=/usr/local/cuda-9.0/lib64:$LD_LIBRARY_PATH
# dockerfile CMD/RUN/ENTRYPOINT
CMD export PATH=/usr/local/mysql:$PATH
RUN export PATH=/usr/local/mysql:$PATH
ENTRYPOINT export PATH=/usr/local/mysql:$PATH

② 使用容器添加环境变量

1> 启动容器时指定环境变量

docker run -dti -e PATH=/usr/local/mysql/bin:$PATH --rm  镜像ID
docker run -tid --env PATH=/usr/local/mysql/bin:$PATH --rm 镜像ID
# -e/--env 标记多个变量

2> 进入容器内部,添加需改环境变量

# 进入容器
docker exec -ti 容器ID/容器名 /bin/bash
# 可在如下文件内容添加变量
~/.bashrc
~/.profile
~/.bash_profile
/etc/profile
/etc/environment
/etc/bash.bashrc
# 在文件末尾添加类似
export PATH=/usr/local/mysql/bin:$PATH
# 添加完成后,使文件生效
source 修改的文件
# 查看
echo $PATH
# 提交容器为镜像:使用docker commit提交容器的读写层,变成只读层
docker commit -a 作者 -m 提交日志 -t 容器名或ID 仓库名:镜像版本
5、docker之环境清理
5.1 基础清理
docker system prune -f
5.2 容器清理
docker container prune -f
5.3 卷清理
docker volume prune -f
5.4 停止所有运行的容器
docker stop $(docker ps -aq)
5.5 删除所有关闭的容器
docker rm $(docker ps -aq)
5.6 删除所有dangling镜像(即无tag的镜像)
docker images|grep none|awk ‘{print $3}’|xargs docker rmi
5.7 删除所有dangling数据卷(即无用的volume)
docker volume rm $(docker volume ls -qf dangling=true)
5.8 清理容器的网络占用
docker network disconnect --force networkName containerName

Docker的常见使用的更多相关文章

  1. docker(部署常见应用):docker部署redis

    上节回顾:docker(部署常见应用):docker部署mysql docker部署redis:4.0 # 下载镜像 docker pull redis:4.0 # 查看下载镜像 docker ima ...

  2. docker(部署常见应用):docker部署mysql

    上节回顾:docker(部署常见应用):docker部署nginx docker部署mysql:5.7.26 # 下载镜像 docker pull mysql: # 查看镜像 docker image ...

  3. docker(部署常见应用):docker部署nginx

    上回说到centos安装docker. 这次用实战,docker部署运行常见的应用. docker常用命令 参看:docker命令大全.这里不做赘述. docker部署nginx 1.docker h ...

  4. Docker 之常见应用部署

    本文教大家如何将常见的应用使用 Docker 进行部署,巩固大家 Docker 命令的学习,下文教大家如何构建属于我们自己的 Docker 镜像. Tomcat 拉取镜像. docker pull t ...

  5. Docker:常见命令

    Docker常见命令(持续更新中):   说明 命令 截图 1 查看Docker版本 Docker -v 2  查看镜像 Docker image ls   3  查看容器  Docker conta ...

  6. maven docker plugin 常见问题解决

    1. maven 项目必须使用小写,不然会一直有500 的错误    500: HTTP 500InternalServerError     2. docker server  连接数超了 Fail ...

  7. Docker Toolbox常见错误解决方案

    错误1 Error checking TLS connection: Error checking and/or regenerating the certs: There was an error ...

  8. docker安装常见应用

    1.emqx #!/bin/bash docker stop emqttd-docker-v2.3.11 docker rm emqttd-docker-v2.3.11 docker run -tid ...

  9. docker之常见错误

    1. docker run -d --name showdoc -p 4999:80 -v /showdoc_data/html:/var/www/html/ star7th/showdoc WARN ...

  10. docker删除常见命令

    $ docker stop $(docker ps -a | grep "Exited" | awk '{print $1 }') //停止容器 1b7067e19d6f a840 ...

随机推荐

  1. 配置jupyter lab遇到 libffi.so.7缺失

    问题描述 使用 jupyter lab password 命令 配置jupyter 密码 报错 思路 去换一个conda环境 找到其lib内部的 libffi.so.7文件 解决方法 ln -s 其他 ...

  2. vue-element-admin框架连接yapi配置vue.config.js

    devServer: { host:'localhost', port:port, proxy:{ [process.env.VUE_APP_BASE_API + '/admin']: { //配置p ...

  3. C++ STL中的二分法

    二分法介绍 狭义的二分法是一种在有序的数组中查找是否存在某个值的算法.广义的二分法不一定需要显式的数组,只需要有序的解空间即可.(此处解空间借用线性代数的称谓,仅表示所有合法解的集合,与线性代数无关) ...

  4. mysql数据库新建用户,并赋予权限

    新建用户: CREATE USER 'testuser'@'LOCALHOST' IDENTIFIED BY '123456'; 赋予权限: grant select on *.* to 'testu ...

  5. LinuxK8S集群搭建二(Node节点部署)

    系统环境: CentOS 7 64位 准备工作: 通过虚拟机创建三台CentOS服务器,可参照之前的文章:Windows10使用VMware安装centos192.168.28.128 --maste ...

  6. Appium-TouchAction类与MultiAction类(控件元素的滑动、拖动,九宫格解锁,手势操作等)

    文章转自:https://www.cnblogs.com/lfr0123/p/13679568.html swipe一般用于对页面进行上下左右滑动操作,但自动化过程中还会遇到其他情况,如对控件元素进行 ...

  7. keil调试教程

    点击跳转 如果开启调试就提示弹框错误2k,说明你没有破解你的keil,网上自行下载注册机. 调试一定要对应自己板子的晶振,否则当你测试你的延时实际时间时,keil里的sec会不一样,甚至离谱.

  8. win10 扩展c盘 “PARTITION_BASIC_DATA_GUID"

    一不小心化身为c盘战士了,系统卡到不行 于是通过pe登入系统(我自己用的wintogo),然后下载傲梅分区助手(嘎嘎好用) 傲梅官网 https://www.disktool.cn/download. ...

  9. java.net.ConnectException: Your endpoint configuration is wrong; For more details see: http://wiki.apache.org/hadoop/UnsetHostnameOrPort

    今天使用在hive中建表,并在hive中将查询到的语句插入到新表中时,一直开在如图所示位置不动 等待了20多分钟,然后报了这么个错 java.net.ConnectException: Your en ...

  10. Python 切片/列表/字符串之间装换

    1. 怎么实现字符串变为list 使用split(),把字符串拆分再存入数组: 例子 input="ni si shi" output=input.split(" &qu ...