Docker 操作记录

安装相关:

#列出版本信息
yum list docker-ce --showduplicates | sort -r

#安装指定版本
yum install docker-ce-17.03.0.ce-1.el7.centos

#安装
yum install -y docker

#启动
systemctl start docker

#验证环境就绪
docker run hello-world

yum remove docker docker-common docker-selinux

yum install https://download.docker.com/linux/centos/7/x86_64/stable/Packages/docker-ce-selinux-17.03.2.ce-1.el7.centos.noarch.rpm

#安装Docker-Compose
#进入指定目录(自由指定)
cd /usr/server
#下载
curl -L https://github.com/docker/compose/releases/download/1.14.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
#可执行赋权
chmod +x /usr/local/bin/docker-compose
#查看版本验证安装
docker-compose --version

#卸载 
1.查询安装过的包  
yum list installed | grep docker          
2.删除安装的软件包  
yum -y remove docker-engine.x86_64     
3.删除镜像/容器等  
rm -rf /var/lib/docker

 

 

 

1.基础命令

选项说明其他
--config [string]客户端本地配置文件路径默认为 ~/.docker
-D, --debug启用调试模式 
--help打印用法 
-H, --host list通过socket访问指定的docker守护进程(服务端)unix:// , fd:// , tcp://
-l, --log-level [string]设置日志级别 (debuginfowarnerrorfatal)默认为 info
-v, --version打印docker客户端版本信息 

1.1 镜像相关

#查看本地镜像
docker images

# 查询三颗星及以上名字包含alpine的镜像 
docker search -f=stars=3 alpine

#搜索镜像库 docker search nginx
docker search

#获取alpine Linux 的镜像
docker pull alpine

#推送镜像到仓库
docker push [镜像名]:[tag]

#登录/退出第三方仓库
docker login harbor
docker logout daocloud.io

#查看本地镜像
docker images

#删除本地镜像
#如果用镜像id作为参数, 可以只输入前几位, 能唯一确定即可(可以同时删除多个镜像, 空格隔开)。此外, 如果该镜像启动了容器需要先删除容器
docker rmi [镜像名 or 镜像id]

#查看镜像详情
docker inspect [镜像名 or 镜像id]

#打包本地镜像, 使用压缩包来完成迁移
# 默认为文件流输出
docker save alpine > /usr/anyesu/docker/alpine.img

# 或者使用 '-o' 选项指定输出文件路径
docker save -o /usr/anyesu/docker/alpine.img alpine

#导入镜像压缩包
docker load < [文件路径]
docker load < /usr/anyesu/docker/alpine.img
docker load -i /usr/anyesu/docker/alpine.img

#修改镜像tag
docker tag [镜像名 or 镜像id] [新镜像名]:[新tag]
docker tag a41 anyesu/alpine:1.0

1.2 容器相关操作

#创建、启动容器并执行相应的命令
docker run [参数] [镜像名 or 镜像id] [命令]
#如果没有指定命令是执行镜像默认的命令, 创建镜像的时候可设置。另外要注意的一点, 启动容器后要执行一个前台进程(就是能在控制台不断输出的, 如tomcat的catalina.sh)才能使容器保持运行状态, 否则, 命令执行完容器就关闭了。 例如:hello-world
docker run hello-world

docker run -d -it -v /home/proxy:/home/proxy -p 8088:8088 docker.io/oddrationale/docker-shadowsocks -c /home/proxy/shadowsocks.json

docker run -d --name anyesu-container -h docker-anyesu --dns 8.8.8.8 -e docker_host=172.18.0.1 -e docker_host2=172.18.0.2 --net anyesu_net --ip 172.18.0.13 --expose 8081 --expose 8082 -P -p 8000:8000 -p 8001:8001 -v /usr/anyesu:/usr/anyesu --add-host anyesu_host:172.18.0.1 tomcat:7
912e6632161de0783a057aa02380e676753f66cfb367ef1686d4d09cdc931659


#-d	后台运行容器, 并返回容器ID;不指定时, 启动后开始打印日志, Ctrl + C 退出命令同时会关闭容器
#-i	以交互模式运行容器, 通常与 -t 同时使用
#-t	为容器重新分配一个伪输入终端, 通常与 -i 同时使用
#--name "anyesu-container"	为容器指定一个别名, 不指定时随机生成
#-h docker-anyesu	设置容器的主机名, 默认随机生成
#--dns 8.8.8.8	指定容器使用的DNS服务器, 默认和宿主一致
#-e docker_host=172.17.0.1	设置环境变量
#--cpuset="0-2" or --cpuset="0,1,2"	绑定容器到指定CPU运行
#-m 100M	设置容器使用内存最大值
#--net bridge	指定容器的网络连接类型, 支持 bridge / host / none / container 四种类型
#--ip 172.18.0.13	为容器分配固定ip(需要使用自定义网络)
#--expose 8081 --expose 8082	开放一个端口或一组端口, 会覆盖镜像设置中开放的端口
#-p [宿主机端口]:[容器内端口]	宿主机到容器的端口映射, 可指定宿主机的要监听的ip, 默认为 0.0.0.0
#-P	注意是大写的, 宿主机随机指定一组可用的端口映射容器 expose 的所有端口
#-v [宿主机目录路径]:[容器内目录路径]	挂载宿主机的指定目录(或文件)到容器内的指定目录(或文件)
#--add-host [主机名]:[ip]	为容器hosts文件追加host, 默认会在hosts文件最后追加 [主机名]:[容器ip]
#--volumes-from [其他容器名]	将其他容器的数据卷添加到此容器
#--link [其他容器名]:[在该容器中的别名]	添加链接到另一个容器, 在本容器hosts文件中加入关联容器的记录, 效果类似于 --add-host
#单字符选项可以合并, 如 -i -t 可以合并为 -it


#查看运行中的容器
#加 -a 选项可查看所有的容器
docker ps

#开启/停止/重启容器

# 关闭容器(发送SIGTERM信号,做一些'退出前工作',再发送SIGKILL信号)
docker stop anyesu-container
# 强制关闭容器(默认发送SIGKILL信号, 加-s参数可以发送其他信号)
docker kill anyesu-container
# 启动容器
docker start anyesu-container
# 重启容器
docker restart anyesu-container

#删除容器
#可以指定多个容器一起删除, 加 -f 选项可强制删除正在运行的容器
docker rm [容器名 or 容器id]

#查看容器详情
docker inspect [容器名 or 容器id]

#查看容器中正在运行的进程
docker top [容器名 or 容器id]

#将容器保存为镜像
docker commit [容器名 or 容器id] [镜像名]:[tag]

#使用Dockerfile构建镜像
docker build -t [镜像名]:[tag] -f [DockerFile名] [DockerFile所在目录]









#先创建并进入一个新的被命名为newos的新容器
docker run -it --name newos docker.io/centos   
#持久保存的环境变量
vim ~/.bashrc

docker commit -m "Added json gem" -a "Docker Newbee" 0b2616b0e5a8 ouruser/sinatra:v2

beeaecb7fbe0


1、删除所有容器 
docker rm `docker ps -a -q` 
2、删除所有镜像 
docker rmi `docker images -q` 
3、按条件删除镜像   没有打标签  
docker rmi `docker images -q | awk '/^<none>/ { print $3 }'`   
镜像名包含关键字  
docker rmi --force `docker images | grep doss-api | awk '{print $3}'`    
//其中doss-api为关键字







1.3 硬件资源

#显示容器硬件资源使用情况
#不指定容器时显示所有正在运行的容器
docker stats [选项] [0个或多个正在运行容器]

#更新容器的硬件资源限制
docker update [选项]

2. 创建docker镜像详解

2.1 用save和export的方式将镜像保存为tar包,然后在需要的时候导入tar镜像包

2.2 将已经配置好的镜像push到我们的私有仓库或者已注册过的共有仓库中,需要的时候直接pull下来使用

这两种方式都可以,但是自动化程度低、自由度不够、定制起来比较麻烦。既然如此,那就来说一下更加自动化的创建方式。

2.3 如何用Dockerfile创建镜像

先看一份简单的Dockerfile文件

# this is a centos nginx base image dockerfile
# Author: peizhouyu

FROM centos

MAINTAINER MrPri

RUN mkdir /usr/server
RUN mkdir /usr/server/nginx
ADD nginx-1.15.7.tar.gz /usr/server/
#COPY nginx-1.15.7.tar.gz /usr/server/
RUN yum -y install tar
#RUN tar -zxf /usr/server/nginx-1.15.7.tar.gz
RUN yum -y install gcc zlib zlib-devel pcre-devel openssl openssl-devel \
   # && mv /usr/server/nginx-1.15.7 /usr/server/nginx \
    && cd /usr/server/nginx-1.15.7 && ./configure && make && make install

CMD /usr/sbin/nginx

 

转载于:https://my.oschina.net/mrpei123/blog/2990826

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值