docker基础教程

简介: 核心概念镜像一个镜像可以有很多层,每一层都可以用来存储数据容器容器就是一个镜像加上一个读写层仓库用来存放镜像安装docker菜鸟教程的安装链接[centos](安装docker: https://www.

核心概念

  1. 镜像
    一个镜像可以有很多层,每一层都可以用来存储数据
  2. 容器
    容器就是一个镜像加上一个读写层
  3. 仓库
    用来存放镜像

安装docker

  1. 菜鸟教程的安装链接
    [centos](安装docker: https://www.cnblogs.com/yufeng218/p/8370670.html)
  2. docker -v 查看版本号
  3. 注册docker账户,用来装你自己创建的镜像
    https://hub.docker.com/

镜像加速

  1. 阿里云镜像:https://df4d3xrt.mirror.aliyuncs.com
  2. 在任务栏点击 Docker for mac 应用图标 -> Perferences... -> Daemon -> Registry mirrors。在列表中填写加速器地址即可。修改完成之后,点击 Apply & Restart 按钮,Docker 就会重启并应用配置的镜像地址了。请看图示

相关docker教程

  1. 第一次构建、运行、发布、获取docker镜像
  2. Centos7上安装docker
  3. dcoker入门,使用docker部署NodeJs应用
  4. 10张图带你深入理解Docker容器和镜像
  5. 30分钟入门Docker
    使用默认镜像
  6. docker run -d nginx (-d后台-it前台)
  7. docker ps -a -l 查看已启动的容器
  8. docker ps -l 列出最新创建的容器
  9. docker inspect acd349ac64c5(容器id)查看容器的详细情况
  10. curl 172.17.0.2(你自己的容器ip地址) 访问服务
  11. docker logs acd349ac64c5(容器id) 查看日志
  12. docker exec -it acd349ac64c5 bash 今日容器
  13. exit 退出容器
  14. docker run -d -p 8888:80 nginx 对外暴露服务端口8888
  15. 检查容器是不是当前的容器
    docker exec -it 7d1f74d7f24d bash
    echo "hello world" >usr/share/nginx/html/index.html
    在浏览localhost:888查看页面内容是否已经变成了hello world
自己创建镜像(手工)
  1. docker pull centos:7 安装centos7
  2. yum install epel-release 在centos安装一个软件包
  3. yum install nginx 安装nginx
  4. 安装ifconfig
    • yum search ifconfig 查找软件在什么地方
    • yum install net-tools.x86_64 -y 安装有ifconfig的包
  5. ifconfig 拿到系统的ip(本机是172.17.0.4)
  6. curl 172.17.0.4 查看服务情况

Dockerfile

  1. vi Dockerfile 创建文件,内容如下
FROM centos:7
MAINTAINER huruqing
RUN yum install epel-release -y &&\
yum install nginx -y net-tools -y
EXPOSE 80
CMD ["nginx","-g","deamon off;"]
  1. docker build -t nginx:v1 构建镜像
  2. docker images |grep nginx 查找nginx的镜像
  3. docker run -d -p 8888:80 100bf0d80bfb 对外暴露服务端口
  4. 打tag docker tag nginx huruqing/nginx:v1 添加标志
  5. push docker push nginx huruqing/nginx:v1 提交到仓库

docker的常用命令

#查看当前docker版本
docker -v
#查看当前本地所有镜像
docker images
#构造镜像,用法docker build -t 镜像名称 .
docker build -t docker_demo .
#用于容器与主机之间的数据拷贝。用法docker cp 主机文件地址 容器内地址。12d7f14v45cv为容器id。
docker cp /www/runoob 12d7f14v45cv:/www/
#创建一个新的容器并运行,-d为后台执行,-p 9000:3000前面为主机端口,后面是容器端口。docker_demo镜像名
docker run -d -p 9000:3000 docker_demo
#启动已被停止的容器
docker start docker_demo
#关闭已被启动的容器
docker stop docker_demo
#关闭所有容器
docker stop $(docker ps -a -q)
# 删除所有容器
docker rm $(docker ps -a -q)
#重新启动容器
docker restart docker_demo
#杀掉一个运行中的容器。
docker kill -s KILL docker_demo
#删除一个或多少容器。-f :通过SIGKILL信号强制删除一个运行中的容器-l :移除容器间的网络连接,而非容器本身-v :-v 删除与容器关联的卷
docker rm -f docker_demo、docker_demo1
#在运行的容器中执行命令。104e28f2f072容器id
sudo docker exec -it 104e28f2f072 /bin/bash 
#列出容器。 -a:所有容器包含没有运行的
docker ps 
#获取容器获取容器的日志 104e28f2f072容器id,-t:显示时间戳
docker logs -f -t 104e28f2f072 
#登陆镜像仓库
docker login
#获取镜像
docker pull 
#上传镜像
docker push
#查看指定镜像的创建历史。
docker history docker_demo

Docker命令大全

采坑记录

  1. docker stop 后面只能跟容器id而非镜像名
  2. 执行exec时报错: OCI runtime exec failed: exec failed: container_linux.go:348: starting container process caused "exec: "bash": executable file not found in $PATH": unknown
    解决办法 exec 报错是因为 /bin/bash 文件不存在,可以尝试 /bin/sh 等。
目录
相关文章
|
1月前
|
关系型数据库 MySQL Java
Docker Compose详细教程(从入门到放弃)
Docker Compose详细教程(从入门到放弃)
137 0
|
1月前
|
Oracle 关系型数据库 数据库
|
3月前
|
关系型数据库 MySQL 数据库
百度搜索:蓝易云【【Docker】Docker部署Mysql并设置数据持久化教程】
通过以上步骤,您已经成功地在Docker中部署了MySQL,并设置了数据持久化,确保数据在容器重新启动或迁移时得以保留。
50 0
|
3月前
|
安全 应用服务中间件 nginx
百度搜索:蓝易云【使用Debian、Docker和Nginx部署Web应用教程】
这些是在Debian上使用Docker和Nginx部署Web应用的基本步骤。根据您的需求和具体环境,可能还需要进行其他配置和调整。请确保在进行任何与网络连接和安全相关的操作之前,详细了解您的网络环境和安全需求,并采取适当的安全措施。
45 0
|
3月前
|
Docker 容器
百度搜索:蓝易云【docker容器/etc/hosts文件修改教程】
现在,你已经成功修改了Docker容器中的 `/etc/hosts`文件,添加了主机名和IP地址的映射关系。这使得在容器内部可以使用指定的主机名来访问相应的IP地址。请确保在修改 `/etc/hosts`文件时小心,避免错误的配置导致意外的问题发生。
118 0
|
4月前
|
应用服务中间件 网络安全 nginx
百度搜索:蓝易云【docker搭建nginx教程】
现在,你的Nginx容器已经成功运行。你可以通过访问服务器的IP地址或域名来访问Nginx服务。请确保服务器的防火墙允许访问80端口。
68 0
|
3月前
|
大数据 数据管理 Docker
【Datahub系列教程】Datahub入门必学——DatahubCLI之Docker命令详解
【Datahub系列教程】Datahub入门必学——DatahubCLI之Docker命令详解
218 0
|
24天前
|
jenkins Java 持续交付
Docker搭建持续集成平台Jenkins最简教程
Jenkins 是一个广泛使用的开源持续集成工具,它能够自动化构建、测试和部署软件项目。在本文中,我们将使用 Docker 搭建一个基于 Jenkins 的持续集成平台。
108 2
|
30天前
|
JavaScript Java jenkins
如何利用CentOS7+docker+jenkins+gitee部署springboot+vue前后端项目(保姆教程)
如何利用CentOS7+docker+jenkins+gitee部署springboot+vue前后端项目(保姆教程)
78 0
|
2月前
|
前端开发 Java 应用服务中间件
【Docker】部署若依项目——保姆级教程亲测
【Docker】部署若依项目——保姆级教程亲测
172 0