美文网首页
Docker入门到入门(一)

Docker入门到入门(一)

作者: 刘_小_二 | 来源:发表于2020-07-27 16:46 被阅读0次

Docker 是一个用于开发,交付和运行应用程序的开放平台。Docker 使您能够将应用程序与基础架构分开,从而可以快速交付软件。借助 Docker,可以与管理应用程序相同的方式来管理基础架构。通过利用 Docker 的方法来快速交付,测试和部署代码,可以大大减少编写代码和在生产环境中运行代码之间的延迟。

Docker架构,Docker包括三个基本概念:

  • 镜像(Image):Docker 镜像(Image),就相当于是一个 root 文件系统。比如官方镜像 ubuntu:16.04 就包含了完整的一套 Ubuntu16.04 最小系统的 root 文件系统。

  • 容器(Container):镜像(Image)和容器(Container)的关系,就像是面向对象程序设计中的类和实例一样,镜像是静态的定义,容器是镜像运行时的实体。容器可以被创建、启动、停止、删除、暂停等。

  • 仓库(Repository):仓库可看成一个代码控制中心,用来保存镜像。

Docker安装

1.安装环境

当前操作在Linux环境进行安装

2.安装

2.1 安装运行

2.1.1 使用Yum源安装
# 把yum包更新到最新
sudo yum update
# 查看是否已安装docker
yum list installed | grep docker

# 安装docker
yum install docker

# 查看安装后版本
docker version
2.1.2 启动docker
# 开机自启
sudo systemctl enable docker 

# 启动docker服务  
sudo systemctl start docker

# 停止docker服务 
sudo systemctl stop docker
2.1.3 查看docker服务状态
# 查看docker服务状态
systemctl status docker

# 查看日志状态成功日志
systemctl status docker.service
2.1.4 添加docker用户组(可选)
# 建立 Docker 用户组
sudo groupadd docker

# 添加当前用户到 docker 组
sudo usermod -aG docker $USER
2.1.5 镜像加速配置
# 加速器地址 :
# 阿里云控制台搜索容器镜像服务
# 进入容器镜像服务, 左侧最下方容器镜像服务中复制加速器地址
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["你的加速器地址"]
}
EOF
# 重启docker
sudo systemctl daemon-reload
sudo systemctl restart docker

*列:

{
  "registry-mirrors": [
     "https://registry.docker-cn.com",
     "https://docker.mirrors.ustc.edu.cn",
     "http://hub-mirror.c.163.com",
     "https://cr.console.aliyun.com/"
  ]
}

2.2 常用docker运行命令

# 拉取docker镜像(从Docker hub上下载某个镜像);
docker pull image_name<镜像名称>

# 查找Docker Hub上的nginx镜像;
docker search image_name<镜像名称>

# 查看宿主机上的镜像,Docker镜像保存在/var/lib/docker目录下;
docker images

# 删除镜像
docker rmi docker.io/tomcat:7.0.77-jre7 或者 docker rmi b39c68b7af30<镜像id>

# 查看当前正在运行容器
docker ps

# 查看所有容器
docker ps -a

# 启动、停止、重启容器命令(container_name:容器名、container_id:容器id)
docker start container_name/container_id
docker stop container_name/container_id
docker restart container_name/container_id

# 后台启动一个容器后,如果想进入到这个容器,可以使用attach命令(如果从这个容器退出,会导致容器的停止。)
docker attach container_name/container_id

# 进入一个已经在运行的容器(推荐大家使用 docker exec 命令,因为此退出容器终端,不会导致容器的停止。)
sudo docker exec -it 775c7c9ee1e1 /bin/bash 

# 退出容器
exit

# 删除容器的命令(container_name:容器名、container_id:容器id)
docker rm container_name/container_id

# 删除所有停止的容器
docker rm $(docker ps -a -q)

# 查看当前系统Docker信息
docker info

# 查看容器的日志命令(container_name:容器名、container_id:容器id)
docker logs container_name/container_id

2.3 安装目录详情

​ docker默认安装目录:

/var/lib/docker

​ docker启动后日志会在以下位置:

/var/lib/docker/containers/容器ID/容器ID-json.log

2.4 Docker从容器拷贝文件到宿主机操作案例

案例一:
# 以elasticsearch容器为例
# 运行es
docker run -d -p 9200:9200  elasticsearch:5.4
# 查看已运行的容器
docker ps
# 进去容器内部,找到需要拷贝的文件及目录
docker exec -it 2c2600fb60f8 /bin/bash
# 从容器中退出
exit
# 将container id为4db8edd86202的容器内elasticsearch.yml文件拷贝到宿主机指定目录下:
docker cp 4db8edd86202:/usr/share/elasticsearch/config/elasticsearch.yml /home/haopeng/es

【把docker中容器时db002里面的my.cnf文件拷贝到根目录下】

docker cp db002:/etc/mysql/my.cnf  ~/root/

【把根目录下my.cnf文件拷贝到docker中容器时db002里面】

docker cp ~/root/my.cnf   db002:/etc/mysql/my.cnf 

2.5 端口映射问题(易忽略)

*列:

0.0.0.0:5000->5000/tcp 

说明:容器内部的 5001 端口映射到我们本地主机的 5000 端口上。

3.Docker Dockerfile

Dockerfile 是一个用来构建镜像的文本文件,文本内容包含了一条条构建镜像所需的指令和说明。

4.Docker Compose

Compose 是用于定义和运行多容器 Docker 应用程序的工具。通过 Compose,您可以使用 YML 文件来配置应用程序需要的所有服务。然后,使用一个命令,就可以从 YML 文件配置中创建并启动所有服务。

相关文章

网友评论

      本文标题:Docker入门到入门(一)

      本文链接:https://www.haomeiwen.com/subject/ucazlktx.html