Docker入门
Posted 单人可
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Docker入门相关的知识,希望对你有一定的参考价值。
docker入门
docker的基本组成
docker分为
- docker客户端 发送指令与docker主机交互(这点与redis类似);
- docker服务主机 存放docker镜像及运行docker容器的核心引擎;
- docker仓库 docker hub上存放所有的docker镜像。
镜像(image)
docker镜像相当于模板,通过镜像模板来创建容器服务;
tomcat镜像 -> run运行 -> tomcat01容器(提供服务);
通过镜像可以创建多个容器(最终项目程序运行在容器中)。
可以这样方便的理解
docker镜像 == Java类
docker容器 == Java对象
或
docker镜像 == VMware的系统镜像
docker容器 == VMware运行的虚拟机
容器(container)
独立运行一个或一组应用,是通过镜像创建的。
容器的基本操作:启动,停止,删除等。
仓库(repostory)
仓库是存放镜像的地方。
仓库分为公有仓库和私有仓库。
docker Hub(默认是国外的! 慢! 配置镜像加速!)
开始安装docker
# 1、先卸载清空
yum remove docker \\
docker-client \\
docker-client-latest \\
docker-common \\
docker-latest \\
docker-latest-logrotate \\
docker-logrotate \\
docker-engine
# 2、安装依赖
yum install -y yum-utils
# 3、配置镜像仓库(用阿里云的镜像仓库)
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
#
yum makecache fast
# 4、安装docker社区版ce
yum install -y docker-ce docker-ce-cli containerd.io
# 5、启动docker
systemctl start docker
# 6、启动成功查看版本信息
docker version
# 7、hello world验证docker是否正确安装
docker run hello-world
# 8、卸载docker
yum remove docker-ce docker-ce-cli containerd.io
# 删除docker相关资源
rm -rf /var/lib/docker
helloworld运行成功
配置镜像加速
# 加速地址 https://zxrycclq.mirror.aliyuncs.com ,加速地址需要登录阿里云管理后台去获得。
mkdir -p /etc/docker
tee /etc/docker/daemon.json <<-\'EOF\'
{
"registry-mirrors": ["https://zxrycclq.mirror.aliyuncs.com"]
}
EOF
systemctl daemon-reload
systemctl restart docker
docker常用命令
镜像命令
docker images 查看镜像
[root@localhost ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
mysql latest c0cdc95609f1 3 weeks ago 556MB
hello-world latest d1165f221234 3 months ago 13.3kB
# REPOSITORY 镜像仓库
# TAG 镜像标签
# IMAGE ID 镜像id
# CREATED 创建时间
# SIZE 镜像大小
# -a 列出所有镜像
# -q 只显示镜像id
docker search 搜索镜像
[root@localhost ~]# docker search mysql
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
mysql MySQL is a widely used, open-source relation… 10966 [OK]
mariadb MariaDB Server is a high performing open sou… 4147 [OK]
mysql/mysql-server Optimized MySQL Server Docker images. Create… 814 [OK]
centos/mysql-57-centos7 MySQL 5.7 SQL database server 88
docker pull 下载镜像
# 下载mysql,默认下载最新版本
[root@localhost ~]# docker pull mysql
Using default tag: latest # 不指定tag就下载最新版
latest: Pulling from library/mysql
69692152171a: Pull complete # 分层下载,联合文件系统
1651b0be3df3: Pull complete
951da7386bc8: Pull complete
0f86c95aa242: Pull complete
37ba2d8bd4fe: Pull complete
6d278bb05e94: Pull complete
497efbd93a3e: Pull complete
f7fddf10c2c2: Pull complete
16415d159dfb: Pull complete
0e530ffc6b73: Pull complete
b0a4a1a77178: Pull complete
cd90f92aa9ef: Pull complete
Digest: sha256:d50098d7fcb25b1fcb24e2d3247cae3fc55815d64fec640dc395840f8fa80969 # 签名
Status: Downloaded newer image for mysql:latest
docker.io/library/mysql:latest # 源地址
# 指定版本下载
docker pull mysql:5.7
docker rmi 删除镜像
[root@localhost ~]# docker rmi -f hello-world
Untagged: hello-world:latest
Untagged: hello-world@sha256:5122f6204b6a3596e048758cabba3c46b1c937a46b5be6225b835d091b90e46c
Deleted: sha256:d1165f2212346b2bab48cb01c1e39ee8ad1be46b87873d9ca7a4e434980a7726
# 删除指定 镜像id或镜像名称
docker rmi -f hello-world
# 删除多个
docker rmi -f hello-world1 hello-world2 hello-world3
# 删除全部镜像
docker rmi -f `docker images -qa`
容器命令
docker run 新建并运行容器
docker run [参数] image
# 参数
--name="容器名称" mysql01 mysql02用来区分容器
-d 后台运行
-it 交互方式运行,进入容器执行命令
-p 指定容器的端口
-p ip:主机端口:容器端口
-p 机端口:容器端口(常用)
-p 容器端口
-P 随机指定端口
# 运行结果
[root@localhost ~]# docker run -it centos /bin/bash
[root@7ebc1e03168c /]# uname -a
Linux 7ebc1e03168c 3.10.0-1127.el7.x86_64 #1 SMP Tue Mar 31 23:36:51 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
[root@7ebc1e03168c /]# hostname
7ebc1e03168c
[root@7ebc1e03168c /]# date
Tue Jun 8 15:15:47 UTC 2021
[root@7ebc1e03168c /]# ls
bin dev etc home lib lib64 lost+found media mnt opt proc root run sbin srv sys tmp usr var
[root@7ebc1e03168c /]# ll
bash: ll: command not found
# 停止容器并退出
exit
# 只退出,容器继续后台运行
ctrl + P + Q
# 进入容器
docker attach 容器id
docker ps 查看容器
[root@localhost ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
9c99c802e6be centos "/bin/bash" 35 seconds ago Up 34 seconds centos01
# 列出正在运行中的容器
# -a 列出所有容器及运行过的历史容器
# -q 显示容器id
# -n=1 列出最近几个运行的容器
docker rm 删除容器
# 删除指定id容器
docker rm 容器id
# 删除全部容器
docker rm `docker ps -qa`
docker 启动停止进入容器
# 进入容器
docker attach 容器id
# 启动容器
docker start 容器id
# 停止容器
docker stop 容器id
# 重启容器
docker restart 容器id
# 杀掉容器
docker kill 容器id
其他常用命令
未完
以上是关于Docker入门的主要内容,如果未能解决你的问题,请参考以下文章
Docker删除报错:Error response from daemon: conflict: unable to delete 08b152afcfae (must be forced)(代码片段
markdown [Docker] Docker片段列表和命令#linux #docker #snippets