在 linux 中 docker容器安装使用
docker 工作流程介绍
正如上图所示,当我们想运行一个容器的时候,docker会:
1、拉取镜像,若本地已经存在该镜像,则不用到网上去拉取
2、创建新的容器
3、分配union文件系统并且挂着一个可读写的层,任何修改容器的操作都会被记录在这个读写层上,你可以保存这些修改成新的镜像,也可以选择不保存,那么下次运行改镜像的时候所有修改操作都会被消除
4、分配网络\桥接接口,创建一个允许容器与本地主机通信的网络接口
5、设置ip地址,从池中寻找一个可用的ip地址附加到容器上,换句话说,localhost并不能访问到容器
6、运行你指定的程序
7、捕获并且提供应用输出,包括输入、输出、报错信息
一、配置安装 docker 源
[root@docker ~]# cat /etc/yum.repos.d/docker.repo
[dockerrepo]
name=Docker Repository
baseurl=https://yum.dockerproject.org/repo/main/centos/$releasever/
enabled=1
gpgcheck=1
gpgkey=https://yum.dockerproject.org/gpg
二、安装 docker
[root@docker ~]# yum install -y docker-engine
[root@docker ~]# service docker start
[root@docker ~]# systemctl enable docker
[root@docker ~]# docker version (查看是否安装成功)
三、docker 的基本命令操作
attach 运行正在运行的容器
build 从Dockerfile构建一个映像
commit 根据容器的更改创建新映像
export 将容器的文件系统导出为 tar 归档文件
images 查看镜像
import 从 tar 导入内容以创建文件系统映像
kill 杀死一个或多个正在运行的容器
load 导入 tar 镜像文件
logs 获取容器日志
port 列出端口映射或容器的特定映射
ps 查看正在运行的容器
pull 从注册表中提取镜像(下载)
push 上传本地的镜像
rename 重命名一个容器
restart 重启容器
rm 删除一个或多个容器
rmi 删除一个或多个镜像
run 在新容器中运行命令
save 将一个或多个镜像保存到tar存档
search 在Docker Hub中搜索镜像
start 启动容器
stats 实时监控容器的状态信息
stop S停容器
tag 创建一个引用SOURCE_IMAGE的标记TARGET_IMAGE
top 显示容器的运行进程
unpause 恢复一个或多个容器中的所有进程
update 更新一个或多个容器的配置
version 显示Docker版本信息
wait 阻塞,直到一个或多个容器停止,然后打印它们的出口代码
1、查看 Docker 版本信息 (docker version images_name)
2、查找 Docker 镜像 (docker search images_name)
3、下载 Docker 镜像 (docker pull images_name)
4、删除 Docker 镜像(docker rmi images_name)
5、Docker 镜像的历史版本(docker history images_name)
6、上传 Docker 的镜像(docker push images_name)
7、进入(docker attach name)
8、导出保存镜像(docker export images_number > name.tar)
9、导入镜像快照(cat name.tar | docker import - name:version number)
10、创建一个新的镜像标记(docker tag IMAGEID name:version number)
四、创建 docker 容器
1、下载镜像: docker pull centos (或 docker.io/centos)
查看镜像: docker images
[root@docker ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
docker.io/mysql latest 2dd01afbe8df 2 weeks ago 485 MB
docker.io/centos latest 75835a67d134 4 weeks ago 200 MB
2、创建docker:docker run -itp 80:8080 —name centos docker.io/centos /bin/bash
(创建名字为 centos 的 docker容器,将本机的 80 端口映射到容器中为 8080,并放在后台运行)
-i, --interactive 保持STDIN开放,即使没有连接
-t, --tty 分配一个pseudo-TTY
-v, --volume list 绑定安装卷
-p, --publish list 将容器的端口发布到主机
-P, --publish-all 将所有公开的端口发布到随机端口
-d, --detach 在后台运行容器并打印容器ID
五、数据持久化保存
1、创建:挂载卷 (-v)
把物理机的 /data 目录挂载到容器 cen2 的 /tpm/data 目录下(可避免容器的数据丢失)
[root@docker ~]# docker run -it --name cen2 -v /data/:/tmp/data docker.io/centos /bin/bash
[root@f79a9974767d ~]# cd /mnt/data/
[root@f79a9974767d ~]# touch {1..5}.mp4 (ctrl+p+q 退出容器,并未停止容器)
[root@docker ~]# ls /data
1.mp4 2.mp4 3.mp4 4.mp4 5.mp4
2、创建:容器卷 (–volumes-from)
在多个容器下,数据同步,把 cen2 的卷挂载到 cen3 下(数据统一化)
[root@docker data]# docker run -ti --name cen3 --volumes-from cen2 centos /bin/bash
[root@405362b535ec /]# cd /tmp/data/
[root@405362b535ec data]# ls
1.mp4 2.mp4 3.mp4 4.mp4 5.mp4
还没有评论,来说两句吧...