Docker入门

Posted 单人可

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Docker入门相关的知识,希望对你有一定的参考价值。

docker入门

docker的基本组成

docker分为

  • docker客户端 发送指令与docker主机交互(这点与redis类似);
  • docker服务主机 存放docker镜像及运行docker容器的核心引擎;
  • docker仓库 docker hub上存放所有的docker镜像。

image

镜像(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运行成功

image

配置镜像加速

# 加速地址 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

Atom编辑器入门到精通 Atom使用进阶

Docker入门

Cg入门20:Fragment shader - 片段级模型动态变色(实现汽车动态换漆)

Cg入门19:Fragment shader - 片段级模型动态变色