docker使用学习1

centos安装docker

#更新yum
yum update
#卸载老版本docker
yum remove docker docker-common docker-selinux docker-engine
#安装依赖包
yum install -y yum-utils device-mapper-persistent lvm2
#设置docker yum源/
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
#查看docker版本
yum list docker-ce --showduplicates|sort -r
#安装docker
yum install -y docker-ce-18.03.1.ce
#启动docker
systemctl start docker
#加入开机自启
systemctl enable docker
#配置国内镜像
vi /etc/docker/daemon.json
{
   "registry-mirrors": ["http://hub-mirror.c.163.com"]
}
#查看docker进程
ps -aux|grep docker

docker 基本命令

#查看所有镜像
docker images
#下载镜像,run命令运行镜像时,docker首先是在本机寻找该镜像,如果本机不存在,回去dockerhub上搜索符合条件
#的镜像并将其下载下来运行
docker run ubuntu echo "hello"
#在dockerhub上拉取镜像
docker pull [镜像名称]
#删除指定镜像
docker rmi 镜像ID
#强制删除
docker rmi -f 镜像id
#删除所有容器
docker rmi $(docker images -q)
#根据dockerfile生成镜像
docker build -t [镜像名] .
#查看镜像历史
docker history 镜像名

docker hub 发布

  1. 先去官网注册账号
    hub官网
  2. 在虚拟机中操作
docker login
username: sss
password: 
Login Successed

注意:
在上面执行的代码可能出现如下异常 rror response from daemon: Get https://registry-1.docker.io/v2/library/hello-world/manifest
这个问题的异常主要是

  1. 解析ip不可用
  2. 因为dns域名没有解析

解决:

yum install bind-utils
dig @114.114.114.114 registry-1.docker.io; 
<<>> DiG 9.11.4-P2-RedHat-9.11.4-9.P2.el7 <<>> @114.114.114.114 registry-1.docker.io ; (1 server found) ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 57840 ;; flags: qr rd ra; QUERY: 1, ANSWER: 8, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 512 ;; QUESTION SECTION: ;registry-1.docker.io.  IN A
;; ANSWER SECTION: registry-1.docker.io. 33 IN A 34.205.88.205 registry-1.docker.io. 33 IN A 35.169.133.189 registry-1.docker.io. 33 IN A 34.202.247.184 registry-1.docker.io. 33 IN A 3.224.11.4 registry-1.docker.io. 33 IN A 3.82.34.201 registry-1.docker.io. 33 IN A 34.195.36.112 registry-1.docker.io. 33 IN A 3.221.133.86 registry-1.docker.io. 33 IN A 3.224.75.242
;; Query time: 26 msec ;; SERVER: 114.114.114.114#53(114.114.114.114) ;; WHEN: 三 4月 22 04:41:31 CST 2020 ;; MSG SIZE  rcvd: 177
~ vi /etc/hosts
34.205.88.205 registry-1.docker.io
~ systemctl restart docker

登入成功之后,使用push命令就可以上传镜像,如果不指定tag则本地的镜像都会上传
上传命令

docker push 注册名/镜像名:tag

如果之前创建的名称不符合规范那么需要修改名称,需要跟docker hub上创建的名称一样

docker tag redis5 注册名/镜像名:tag

生成容器

根据镜像生成容器

#查看所有容器 -a(所有的容器)不加表示运行中容器
docker ps -a
#创建容器
docker run -itd --name redis5 注册名/镜像名:tag
#进入容器
docker exec -it redis5 bash
  • OPTIONS说明:
    • a stdin: 指定标准输入输出内容类型,可选 STDIN/STDOUT/STDERR 三项;
    • d: 后台运行容器,并返回容器ID;
    • i: 以交互模式运行容器,通常与 -t 同时使用;
    • t: 为容器重新分配一个伪输入终端,通常与 -i 同时使用;
    • -name=“nginx-lb”: 为容器指定一个名称;
    • -dns 8.8.8.8: 指定容器使用的DNS服务器,默认和宿主一致;
    • -dns-search example.com: 指定容器DNS搜索域名,默认和宿主一致;
    • h “mars”: 指定容器的hostname;
    • e username=“ritchie”: 设置环境变量;
    • -env-file=[]: 从指定文件读入环境变量;
    • -cpuset=“0-2” or --cpuset=“0,1,2”: 绑定容器到指定CPU运行;
    • m :设置容器使用内存最大值;
    • -net=“bridge”: 指定容器的网络连接类型,支持 bridge/host/none/container: 四种类型;
    • -link=[]: 添加链接到另一个容器;
    • -expose=[]: 开放一个端口或一组端口;
      容器类型:
    • 交互型容器:运行在前台,通常会制定有交互的控制台,可以给容器输入,也可以得到容器的输出。创建该日期的终端被关闭,在容器内部使用 exit命令或者调用docker stop 、docker kill命令后,容器会变成停止状态
    • 后台型容器:运行在后台,创建启动之后就与终端无关。即便终端关闭了,改后台容器也依然存在,只有执行docker stop或者docker kill命令 时候才能够使容器变成停止状态
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值