docker安装及相关命令学习

docker安装及相关学习

centos6安装docker

yum install -y epel-release

yum install -y docker-io

centos7安装docker

1、安装依赖docker依赖于系统的一些必要的工具,可以提前安装。

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

2、添加软件源

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

3、安装docker-ce

yum clean all

yum makecache fast

yum -y install docker-ce

4、启动服务通过systemctl启动服务

systemctl start docker

参考官网 https://docs.docker.com/install/linux/docker-ce/centos/

配置镜像加速(centos7)

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

docker相关命令

--docker镜像命令 
​
docker search xxx镜像(tomcat) 
​
docker search -s 30 xxx 点赞数超过30的罗列 
​
docker pull xxx 拉取镜像  docker pull tomcat等价于docker pull tomcat:latest 
​
docker rmi xxx 删除镜像 docker rmi -f hello-world 强制删除镜像 
​
docker rmi -f A B 强制删除A和B镜像 
​
docker rmi -f $(docker images -qa) 强制删除所有镜像  
​
--docker容器命令 
​
docker ps -l 上一次运行的容器 
​
docker run -it centos  打开并启动centos   -i交互 -t 伪终端 
​
docker run -it --name mycentos01 centos 命名别名 
​
退出容器 exit 或者  ctrl+P+Q(容器不停止退出) 
​
docker attach 容器id  针对ctrl+P+Q(容器不停止退出) ,重新进入容器容器 
​
docker exec -it 容器id ls -la /tmp 可以之前在容器外执行   docker exec -t 容器id /bin/bash 
​
docker run -d centos  以守护方式启动  
​
docker commit 提交容器副本使之成为新的镜像 docker commit -a(作者) -m(提交的描述信息) 容器ID docker commit -a="doutery" -m="tomcat owner" 717bab976927 doutery/mytomcat:1.1 
​
docker run -p 8081:8080 tomcat  端口映射8081

 

.容器转为镜像**

docker commit 容器id mytomcat:1.0

打包成压缩文件

docker save -o mytomcat.tar mytomcat:1.0

加载镜像

docker load -i mytomcat.tar

 

数据卷

直接命令添加

docker run -it -v /myDataVolume:/dataVolumeContainer centos 宿主的目录下和容器内的目录下文件是共享的,同步的

docker run -it -v /myDataVolume:/dataVolumeContainer:ro centos 容器内的dataVolumeContainer只读 DockerFile添加

数据卷容器

docker run -it --name doc1 doutery/centos

docker run -it --name doc2 --volumes-from doc1 doutery/centos 继承一个doc1

DockerFile

  • 手动编写一个dockerfile文件,当然必须符合file的规范

  • 有这个文件,直接docker build命令执行,获得一个自定义镜像

  • run

DockerFile体系结构(保留字指令)

  • FROM 基础镜像,当前的新镜像是基于哪个镜像的

  • MAINTAINER 镜像维护者的姓名和邮箱地址

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

  • EXPOSE 当前容器对我暴露出的端口

  • WORKDIR 指定在创建容器后,终端默认登录的进来的工作目录,一个落脚点,如果不配置默认为根目录 进入之后目录为/

  • ENV 用来在构建镜像过程中设置环境变量

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

  • COPY 类似ADD,拷贝文件和目录到镜像中

  • VOLUME 容器数据卷,用于数据保存和持久化工作

  • CMD 指定一个容器启动时要运行的命令

  • ENTRYPOINT 指定一个容器启动时要运行的命令

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

     

img

docker build -f /mydocker/DockerFile1 -t mycentos:1.1 . docker run -it mycentos:1.1

DockerFile1

FROM centos 
​
MAINTAINER doutery<doutery@163.com> 
​
ENV MYPATH /usr/local WORKDIR $MYPATH 
​
RUN yum -y install vim 
​
RUN yum -y install net-tools 
​
EXPOSE 80 
​
CMD echo $MYPATH 
​
CMD echo "SUCCESS------------------------OK" CMD /bin/bash

 

ADD COPY

参考网址:https://docs.docker.com/

 

docker-compose 容器编排

事例:用nginx反向代理app 8080端口

mkdir docker-compose
vim docker-compose.yml
​
version: '3'
services:
 nginx:
  image: nginx
  ports:
  - 80:80
  links:
  - app
  volumes:
  - ./nginx/conf.d:/etc/nginx/conf.d
  app:
   image: app
   expose:
   - "8080"
   
mkdir -p ./nginx/conf.d
​
docker-compse up

docker私有仓库搭建

# 拉取私有仓库镜像
docker pull registry
​
# 启动私有仓库容器
docker run -id --name=registry -p 5000:5000 registry
​
# 打开浏览器 http://ip:5000/v2/_catalog  看到{"repositories":[]}表示成功
​
# 修改daemon.json
vim /etc/docker/daemon.json  信任私有仓库地址,添加
{"insecure-registries":["ip:5000"]}
​
systemctl daemon-reload && systemctl restart docker
​
docker start registry

harbor私有仓库安装可以参考https://blog.doutery.club/?p=191

镜像上传到私有仓库

1 打标签
docker tag registry ip:5000/myregistry:1.1

2 上传标记的镜像
docker push ip:5000/myregistry:1.1

 

docker指令

杀死所有正在运行的容器
docker kill $(docker ps -a -q)

 

删除所有已经停止的容器
docker rm $(docker ps -a -q)

 

删除所有未打 dangling 标签的镜像
docker rmi $(docker images -q -f dangling=true)

 

删除所有镜像
docker rmi $(docker images -q)

 

强制删除镜像名称中包含“doss-api”的镜像
docker rmi --force $(docker images | grep doss-api | awk '{print $3}')

 

删除所有悬空映像。如果-a指定,还将删除任何容器未引用的所有映像
docker image prune

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值