Docker笔记(一) Docker基础概述

Docker学习

Docker概述

Docker为什么会出现?

特性 容器 虚拟机
启动 秒级 分钟级
硬盘使用 一般为 MB 一般为 GB
性能 接近原生 弱于
系统支持量 单机支持上千个容器 一般几十个

Docker技术优点

  • 更快速的交付和部署
  • 更便捷的升级和扩缩容
  • 更简单的系统运维
  • 更高效的计算资源利用
  • 一致的运行环境
  • 更轻松的迁移

Docker安装

Docker基本组成

镜像(image)

容器(container)

仓库(repository)

安装Docker

环境准备

安装

1.0 卸载旧的版本

sudo yum remove docker 
                  docker-client 
                  docker-client-latest 
                  docker-common 
                  docker-latest 
                  docker-latest-logrotate 
                  docker-logrotate 
                  docker-engine

2.0 需要的安装包

sudo yum install -y yum-utils

3.0 设置镜像仓库

国外

sudo yum-config-manager 
    --add-repo 
    https://download.docker.com/linux/centos/docker-ce.repo

阿里云(推荐使用,快!快!快!)

sudo yum-config-manager 
    --add-repo 
    http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

4.0安装docker相关内容

docker-ce 社区版

docker-ee 企业版(需要授权)

更新索引

yum makecache fast

安装docker Engine

sudo yum install docker-ce docker-ce-cli containerd.io

5.0启动docker

sudo systemctl start docker

查看docker版本

sudo docker version

6.0测试hello-world

sudo docker run hello-world

7.0 查看下载镜像

sudo docker images

阿里云镜像加速

Docker常用命令

帮助命令

docker version # 显示docker的版本信息
docker info    # 显示docker的系统信息,包括镜像和容器的数量
docker --help  # 帮助命令

帮助文档Reference documentation | Docker Documentation

镜像命令

[root@node1 ~]# docker images
REPOSITORY    TAG       IMAGE ID       CREATED       SIZE
hello-world   latest    feb5d9fea6a5   3 weeks ago   13.3kB

# 解释
REPOSITORY 镜像的仓库源
TAG 镜像的标签
IMAGE ID 镜像的id
CREATED 镜像的创建时间
SIZE 镜像的大小

docker search搜索镜像

docker search mysql

docker pull 下载镜像

docker pull mysql

docker rmi删除镜像

docker rmi -f 容器id

容器命令

注:先有镜像测才能创建容器,下载centos镜像

docker pull centos

新建容器并启动

docker run [可选参数] image
# 参数说明
--name="Name" 容器名
-d  后台方式运行
-it 使用交互方式运行,进入容器查看内容
-p 指定容器的端口 -p 8080:8080
	-p ip:主机端口:容器端口
	-p 主机端口:容器端口(常用)
	-p 容器端口
-P 随机指定端口

启动并进入容器

[root@node1 ~]# docker run -it centos /bin/bash
[root@40153b62f4de /]# 

退出容器

# 直接容器停止并退出
[root@40153b62f4de /]# exit
exit

# 退后容器不停止
Ctrl+P+Q

查看容器

# docker ps 命令
-a # 运行过的容器
-n=? #显示最近创建的容器
-q #只显示容器的编号

# 运行的
[root@node1 ~]# docker ps
CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES
# 运行过的
[root@node1 ~]# docker ps -a
CONTAINER ID   IMAGE         COMMAND       CREATED             STATUS                         PORTS     NAMES
40153b62f4de   centos        "/bin/bash"   2 minutes ago       Exited (0) 35 seconds ago                optimistic_kalam
6509d33ff71c   hello-world   "/hello"      About an hour ago   Exited (0) About an hour ago             nice_lewin
4e86a9fd5dd8   hello-world   "/hello"      About an hour ago   Exited (0) About an hour ago             great_carson
[root@node1 ~]# 

删除容器

docker rm 容器id

启动和停止容器

docker start 容器id # 启动容器
docker restart 容器id # 重启容器
docker stop 容器id # 停止容器
docker kill 容器id # 强制停止容器

常用其他命令

后台启动容器

# 后台启动容器
docker run -d 镜像名
# 常见的坑: docker容器使用后台运行,就必须要有要一个前台进程,docker发现没有应用,就会自动停止。

查看日志命令

# 查看日志命令
docker logs  [参数] [容器id]

# -tf  显示日志
# --tail [日志条数]
docker logs  -tf [容器id]
docker logs  -tf --tail 10 [容器id]

查看容器内部进程信息

# 查看容器内部的进程信息
docker top [容器id]

查看镜像元数据

docker inspect [容器id]

进入当前正在运行的容器

#通常容器都是使用后台运行
#方式一,进入容器开启一个新的终端,可以在里面操作(常用)
docker exec -it [容器id] /bin/bash

#方式二,进入正在执行的终端,不会启动新的进程
docker attach [容器id]

从容器内拷贝文件到主机

docker cp [容器id]:容器源文件 主机目标文件
#示例
docker cp [容器id]:/home/test.java test.java

Docker实操练习

部署nginx

搜索镜像

docker search nginx

下载镜像

docker pull nginx

查看镜像

docker images

REPOSITORY    TAG       IMAGE ID       CREATED       SIZE
nginx         latest    87a94228f133   9 days ago    133MB
hello-world   latest    feb5d9fea6a5   3 weeks ago   13.3kB
centos        latest    5d0da3dc9764   5 weeks ago   231MB

启动镜像

# -d 后台运行
# --name 宿主名字
# -p 宿主机端口:容器内端口
docker run -d --name nginx01 -p 3344:80 nginx

运行测试

[root@node1 ~]# curl localhost:3344
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
<style>
html { color-scheme: light dark; }
body {  35em; margin: 0 auto;
font-family: Tahoma, Verdana, Arial, sans-serif; }
</style>
</head>
<body>
<h1>Welcome to nginx!</h1>
<p>If you see this page, the nginx web server is successfully installed and
working. Further configuration is required.</p>

<p>For online documentation and support please refer to
<a href="http://nginx.org/">nginx.org</a>.<br/>
Commercial support is available at
<a href="http://nginx.com/">nginx.com</a>.</p>

<p><em>Thank you for using nginx.</em></p>
</body>
</html>
[root@node1 ~]# 

进入容器

[root@node1 ~]# docker exec -it nginx01 /bin/bash
root@649edc671df1:/# whereis nginx
nginx: /usr/sbin/nginx /usr/lib/nginx /etc/nginx /usr/share/nginx
root@649edc671df1:/# 
本篇内容是参考网络教程学习过程中的笔记
开发工作着,生活快乐着,留下总结,相互交流,共同进步
原文地址:https://www.cnblogs.com/lovechengyu/p/15458905.html