docker实战

docker是管理容器的工具,说白了,就是一堆命令的集合

docker inspect //神器,可以查看当前docker 配置,比如ip/网关/镜像等等信息

docker run xxxx  #启动一个docker容器

docker run --detach --name web nginx:latest  #以分离(后台)方式运行nginx

docker run --interactive --tty --link web:web --name web_test busybox:latest /bin/sh #交互方式启动shell

docker ps  #显示正在运行的docker容器, -a显示全部,包括没有在运行的

docker run -it --privileged=true --name centos-init centos /sbin/init #使用init启动centos

docker restart/stop ${container_name} #重启容器

docker attach ${container_name} #重新连接一个container,但是所有shell的命令和状态都是同步的,区别于使用exec

docker exec -it ${container_name} /bin/bash

docker  logs ${container_name} [-f]#查看日志

docker volume create ${volume_name}

docker run -it --rm -v ${volume_name}:${docker_dir} busybox #关于volume, docker实战这本书讲的一塌糊涂。。。。

docker run -it --rm --volumes-from ${name} busybox #使用容器${name}的卷作为自己的存储卷启动容器,前者不必运行,两者对卷共享

docker pull busybox:latest

docker save -o myfile.tar busybox:latest

-----------------------------网络相关-------------------------

docker run --rm --net none alpine:latest ip addr //创建一个Closed容器,不能和外部进行通信,只能访问本地回环网络

docker run --rm --net bridge alpine //创建一个Bridged 容器,一个本地回环接口,一个通过网桥连接到主机的其他容器,可以访问外部网络,但是主机网络不能访问容器(默认)

docker run --rm --net container:${container_id/name} alpine #创建一个join网络容器,joined意思是该容器和参数指定的另一个容器共享网络接口

------------docker创建独立网络---------------

docker network create --subnet=192.168.1.0/24 --gateway=192.168.1.1 docker-intranet

docker run -it --rm --net docker-intranet --ip 192.168.1.2 alpine #使用静态ip地址

--------------发布镜像------------

docker run -it --name image-dev alpine

apk add git

exit

docker diff image-dev

docker history ${docker_id}

docker commit -a "@xxx" -m "add git" image-dev alpine-dev //这个image就会出现在本地镜像列表中,docker images可以查看

docker run --rm -it alpine-dev

----------------使用Dockerfile-------------------

docker build --tag ubuntu-git:v1.0 .

# Filename: Dockerfile
# install git on ubuntu
FROM ubuntu:latest
Maintainer lazypiccolo
ENV GITROOT=/home/git \
    GITBIN=/usr/local/bin/git
WORKDIR "${GITROOT}"
RUN apt-get update
RUN apt-get install git -y
#ENTRYPOINT git #这种方式也是可以的,但是会忽略所有命令行和CMD指定的参数
ENTRYPOINT ["git"]
#CMD ["git"]

--------------push镜像到远端----------------

docker tag ubuntu-git:v1.0 lazypiccolo/ubuntu-git #修改镜像规范命名,push的时候本地和远端镜像名称需要相同

docker login #登录

docker push lazypiccolo/ubuntu-git  #push到远端

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值