Docker
18d8bc3eb13533fa68bb9b753654171b40345bec.pngdocker文档地址:
基本的名词
客户端,服务器,仓库
镜像(image):
docker镜像就好比是一个摸版,我们可以通可以通过摸版来创建容器服务
容器(container):
Docker利用容器技术,独立运行一个或者以组应用,通过镜像来创建。
可以理解为一个简易的Linux系统。
仓库(repository):
放置镜像的地方
Centos7如何开启ssh服务
- 命令行输入
setup
1.png
- 按空格将ssh对应的东西设置为*
3.使用xshell进行连接。
安装Docker
环境准备
CentOS7
#系统内核是3.10以上的
[root@iZbp11s3j5mjq7zmmy9f9nZ ~]# uname -r
4.18.0-80.11.2.el8_0.x86_64
开始安装
官方说明文档:https://docs.docker.com/engine/install/
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 \
https://download.docker.com/linux/centos/docker-ce.repo
yum-config-manager \
--add-repo \
http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
4.更新软件包的索引
yum makecache fast
5.安装docker相关的内容
yum install docker-ce docker-ce-cli containerd.io
6.启动docker
systemctl start docker
7.helloworld
docker run hello-world
8.查看下载的hello world的镜像
docker images
!!!卸载docker(请勿轻易尝试)
#卸载依赖
yum remove docker-ce docker-ce-cli containerd.io
#删除资源
rm -rf /var/lib/docker
# /var/lib/docker docker默认工作路径
阿里云镜像加速 (自己的虚拟机也可以使用)
Snipaste_2020-05-23_10-36-56.pngOR 将docker修改为国内镜像源
在
/etc/docker/daemon.json
文件中添加下面参数
此处使用的是中国科技大学的docker镜像源{ "registry-mirrors" : ["https://docker.mirrors.ustc.edu.cn"] }
没有该文件则自行创建
最后重启docker服务
$ sudo service docker restart
其他国内源:https://registry.docker-cn.com
Docker的常用命令
帮助命令
docker version #docker版本版本信息
docker info #docker的系统信息
docker 命令 --help #命令相关信息
帮助文档位置:https://docs.docker.com/reference/
镜像(images)
docker images 查看所有本地主机上的镜像
[root@MiWiFi-R3A-srv ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
hello-world latest bf756fb1ae65 4 months ago 13.3kB
#解释
REPOSITORY 仓库源
TAG 标签
IMAGE ID 镜像的ID
CREATED 镜像的创建时间
SIZE 镜像的大小
# 可选项
Options:
-a, --all #显示所有的镜像
-q, --quiet #只显示ID
docker search搜索镜像
[root@MiWiFi-R3A-srv ~]# docker search mysql
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
mysql MySQL is a widely used, open-source relation… 9520 [OK]
mariadb MariaDB is a community-developed fork of MyS… 3456 [OK]
mysql/mysql-server Optimized MySQL Server Docker images. Create… 698 [OK]
percona Percona Server is a fork of the MySQL relati… 485 [OK]
Options:
-f, --filter=STARS=3000
docker pull 下载镜像
docker pull mysql[:版本]
删除镜像
#根据id去删除
docker rmi -f id
#删除所有的images
docker rmi -f ${docker images -aq}
容器的命令
说明:我们有了镜像才能创建容器,Linux,下载一个centos的镜像来学习。
docker pull centos
新建容器并启动
docker run [可选参数] image
# 参数说明
--name="Name" 容器的名字 tomcat01 tomcat02,用于区分容器的。
--d 后台运行
--it 使用交互的方式运行,进入容器查看内容
--p
-p ip:主机端口:容器端口
-p 主机端口:容器端口
-p 容器端口
-p 随机指定端口
# 测试,启动并进入容器
[root@MiWiFi-R3A-srv ~]# docker run -it centos /bin/bash
[root@8f2ed33a99f8 /]# ls
bin dev etc home lib lib64 lost+found media mnt opt proc root run sbin srv sys tmp usr var
# 退出容器
[root@8f2ed33a99f8 /]# exit
exit
列出所有运行中的容器:
# 查看正在运行的容器
docker ps
#查看所有运行过的容器
docker ps -a
docker ps -n=?
[root@MiWiFi-R3A-srv ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
[root@MiWiFi-R3A-srv ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
8f2ed33a99f8 centos "/bin/bash" 3 minutes ago Exited (127) 2 minutes ago happy_kapitsa
fc093378b377 centos "/bin/bash" 4 minutes ago Exited (0) 4 minutes ago loving_sutherland
6219c5ec5384 mysql "docker-entrypoint.s…" 44 hours ago Exited (1) 44 hours ago optimistic_thompson
9286ff41bafc hello-world "/hello" 2 days ago Exited (0) 2 days ago bold_dewdney
退出容器
exit # 关闭退出
Ctrl + P +Q # 容器不停止退出
删除容器
docker rm 容器id # 删除指定的容器,不能删除正在云的容器 加个 -f就可以
docker rm -f $(docker ps -aq) # 删除所有的容器
docker ps -a -q|xargs docker rm # 删除所有的容器
启动和停止容器的操作
docker start 容器id
docker restart 容器id
docker stop 容器id
docker kill 容器id
常用其他指令
后台启动容器
# docker run -d 镜像名
docker run -d centos
查看日志:
docker logs
查看容器中的进程信息****ps
docker top 容器id
[root@MiWiFi-R3A-srv ~]# docker top 9a02cf74e954
UID PID PPID C STIME TTY TIME CMD
root 66092 66074 0 11:57 pts/0 00:00:00 /bin/bash
查看镜像的元数据
#指令
docker inspect 镜像id
#测试
[root@MiWiFi-R3A-srv ~]# docker inspect 9a02cf74e954
进入当前正在运行的容器
# 进入后太运行的容器,进行一下修改操作
# 命令1
docker exec -it 容器id /bin/bash
# 命令2
docker attach 容器id
#docker exec 进入容器后开启一个新的终端,可以在里面操作(常用)
#docker attach 正在执行的当前代码,不会启动新的进程
从容器内将文件拷贝到主机上
#命令:
docker cp 容器内的文件 被拷贝文件放置地址
[root@MiWiFi-R3A-srv home]# docker cp 9a02cf74e954:/home/test.java /home
# 拷贝是一个手动的过程,未来我们要使用-v数据卷的技术,可以实现
网友评论