Zhong__Docker安装和简单使用

                           Docker安装及使用(CentOS7系统)

时间:2019.09.23

环境:CentOS7(Centos7系统要求为64位)

目的:在Centos7系统安装部署docker

说明:本文借鉴官网文档和菜鸟教程及尚硅谷教程,操作大同小异,可自行百度其它教程

 

从 2017 年 3 月开始 docker 在原来的基础上分为两个分支版本: Docker CE 和 Docker EE。

Docker CE 即社区免费版,Docker EE 即企业版,强调安全,但需付费使用。

本文介绍 Docker CE 的安装使用。

作者:Zhong QQ交流群:121160124 欢迎加入!

安装

Docker 要求 CentOS 系统的内核版本高于 3.10 ,查看本页面的前提条件来验证你的CentOS 版本是否支持 Docker 。

通过 uname -r 命令查看你当前的内核版本

[root@runoob ~]# uname -r

移除旧的版本:

yum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \ docker-logrotate \ docker-selinux \ docker-engine-selinux \ docker-engine

安装一些必要的系统工具:

sudo yum install -y yum-utils device-mapper-persistent-data lvm2

添加软件源信息:

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

更新 yum 缓存:

yum makecache fast

安装 Docker-ce:

yum -y install docker-ce

启动 Docker 后台服务:

systemctl start docker

测试运行 hello-world:

docker run hello-world

由于本地没有hello-world这个镜像,所以会下载一个hello-world的镜像,并在容器内运行。

到此,Docker 在 CentOS 系统的安装完成。

镜像加速

鉴于国内网络问题,后续拉取 Docker 镜像十分缓慢,我们可以需要配置加速器来解决:

网易的镜像地址:http://hub-mirror.c.163.com。

新版的 Docker 使用 /etc/docker/daemon.json(Linux) 或者 %programdata%\docker\config\daemon.json(Windows) 来配置 Daemon。

请在该配置文件中加入(没有该文件的话,请先建一个):

{ "registry-mirrors": ["http://hub-mirror.c.163.com"] }

配置阿里镜像加速器:

针对Docker客户端版本大于 1.10.0 的用户

您可以通过修改daemon配置文件/etc/docker/daemon.json来使用加速器:

sudo mkdir -p /etc/docker sudo tee /etc/docker/daemon.json <<-'EOF' { "registry-mirrors": ["https://uihastnx.mirror.aliyuncs.com"] } EOF sudo systemctl daemon-reload sudo systemctl restart docker

使用

Docker 允许你在容器内运行应用程序, 使用 docker run 命令来在容器内运行一个应用程序:

docker run ubuntu:15.10 /bin/echo "Hello world"

各个参数解析:

  • docker: Docker 的二进制执行文件。
  • run:与前面的 docker 组合来运行一个容器。
  • ubuntu:15.10指定要运行的镜像,Docker首先从本地主机上查找镜像是否存在,如果不存在,Docker 就会从镜像仓库 Docker Hub 下载公共镜像。
  • /bin/echo "Hello world": 在启动的容器里执行的命令

以上命令完整的意思可以解释为:Docker 以 ubuntu15.10 镜像创建一个新容器,然后在容器里执行 bin/echo "Hello world",然后输出结果。

运行交互式的容器

我们通过docker的两个参数 -i -t,让docker运行的容器实现"对话"的能力:

docker run -i -t ubuntu:15.10 /bin/bash

各个参数解析:

  • -t:在新容器内指定一个伪终端或终端。
  • -i:允许你对容器内的标准输入 (STDIN) 进行交互。
  • -d:让容器在后台运行。
  • -P:将容器内部使用的网络端口映射到我们使用的主机上。

-P :是容器内部端口随机映射到主机的高端口。

-p : 是容器内部端口绑定到指定的主机端口 如:-p 5000:5000

此时我们已进入一个 ubuntu15.10系统的容器!我们可以通过运行exit命令或者使用CTRL+D来退出容器。

启动容器(后台模式)

使用以下命令创建一个以进程方式运行的容器:

docker run -d ubuntu:15.10 /bin/sh -c "while true; do echo hello world; sleep 1; done"

确认容器有在运行,可以通过 docker ps 来查看:

docker ps

容器内使用docker logs命令,查看容器内的标准输出

docker logs 容器id

停止容器

docker stop 容器id

删除 (卸载)Docker CE

执行以下命令来删除 Docker CE:

yum remove docker-ce rm -rf /var/lib/docker

其它

查询:

docker ps 查看容器

docker ps -l 查询最后一次创建的容器

docker ps -n 5 查询最后5次创建的容器

docker images  列出本地主机上的镜像

docker images -a 列出本地主机上的所有镜像

docker images -q 列出本地主机上的镜像id

 docker search httpd 搜索httpd镜像 docker search st 在docker hub查找某个镜像

pull:

docker pull ubuntu:15.10 下载ubuntu15.10镜像

删除:

删除镜像(镜像名称):

docker rmi hello-world

删除镜像(镜像id):

docker rmi fce289e99eb9

强制删除:

docker rmi -f fce289e99eb9

删除多个:

docker rmi -f fce289e99eb9 镜像:tag 镜像 :tag

删除所有:

docker rmi -f $(docker images qa)

 

 

生成容器:

docker run -it --name centos7 centos

查看docker正在运行的容器进程:

docker ps

docker container ls

查看docker所有的容器进程:

docker ps -a

退出:

exit 停止并退出

Ctrl + P + Q 不停止退出

 

启动容器:

docker start 容器名称或id

重启容器:

docker restart 容器名称或id

停止容器:

docker stop 容器名称或id

强制停止容器:

docker kill 容器名称或id

 

删除容器:

docker rm 容器名称或id

强制删除容器:

docker rm -f 容器名称或id

删除所有的容器:

docker rm -f $(docker ps -qa)

 

进入已启动的容器:

docker attach 容器id

不“进入”已启动的容器执行容器命令到前台

docker exec 容器id Command

 

Commit:

docker commit -a="zhong" -m="new image" 容器id 版本号:tag

example:

docker commit -a="zhong" -m="new image" fce289e99eb9 centos_new/1.2:

 

复制文件cp:

docker cp 容器id:容器内路径 本地路径或其他目的主机的路径

 

建立共享目录:

docker run -it v /主机绝对路径:容器内路径 镜像id # 数据同步

docker run -it v /主机绝对路径:容器内路径:ro 镜像id #给容器映射的目录加权限(只 读)

 

build镜像:

docker build -f /mydocker/dockerfile -t zhong/centos7 . #在当前目录使用dockerfile文件构建镜像

dockerfile demo:

FROM centos

VOLUME ["/dataVolumeContainer1","/dataVolumeContainer2"]

CMD echo "finished,success!"

CMD /bin/bash

 

DockerFile:

dockerfile是镜像的构建文件!

dockerfile文件的保留字指令(大写):

FROM 基础镜像 基于哪个镜像为基础 scratch为顶级镜像

MAINTAINER 镜像维护者 姓名和邮箱信息

RUN 容器构建时需要运行的命令

EXPOSE 当前容器对外端口号

WORKDIR 容器创建后登陆进来的默认目录 不指定默认为/目录

ENV 设置环境变量

ADD 将主机目录中的文件拷贝到镜像并且ADD命令会自动处理URL和解压tar压缩包

COPY 类似ADD,拷贝文件和目录到镜像中!将从构建上下文目录中<源路径>的文件/目录复制到新的一层的镜像内的<目标路径>位置

VOLUME 容器数据卷 用户数据保存和持久化工作

CMD 指定一个容器启动时运行的命令,可以有多个CMD指令,但只有最后一个生效,CMD会被docker run之后的参数替换

ENTRYPOINT 指定一个容器启动时运行的命令,目的和CMD一样

ONBUILD 当构建一个被继承的Dockfile时运行命令,父镜像在被子镜像继承后父镜像的onbuild被触发

 

 

--name 对容器命名

-p 8081:80 将本地 8081 端口映射到容器内部的 80 端口。

-v ~/nginx/logs:/var/log/nginx:将我们自己创建的 logs 挂载到容器的 /var/log/nginx。

--privileged=true

 

 

Docker 命令大全

容器生命周期管理

容器操作

容器rootfs命令

镜像仓库

本地镜像管理

info|version

 

 

Docker 资源汇总

Docker Hub 网址为: https://hub.docker.com/

Docker官方英文资源

docker官网:http://www.docker.com

Docker Windows 入门:https://docs.docker.com/docker-for-windows/

Docker CE(社区版) Ubuntu:https://docs.docker.com/install/linux/docker-ce/ubuntu/

Docker mac 入门:https://docs.docker.com/docker-for-mac/

Docker 用户指引:https://docs.docker.com/config/daemon/

Docker 官方博客:http://blog.docker.com/

Docker Hub: https://hub.docker.com/

Docker开源: https://www.docker.com/open-source

Docker 国内镜像

阿里云的加速器:https://help.aliyun.com/document_detail/60750.html

网易加速器:http://hub-mirror.c.163.com

官方中国加速器:https://registry.docker-cn.com

ustc的镜像:https://docker.mirrors.ustc.edu.cn

daocloud:https://www.daocloud.io/mirror#accelerator-doc(注册后使用)

关注微信公众号:

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我变了_我没变

随意 。。。

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值