docker 常用命令

基本使用

https://labs.play-with-docker.com/

# 下载nginx镜像
$ docker pull nginx:latest

# 查看本地镜像
$ docker images

# 运行镜像成一个container
# --name 别名,不填则自动生成一个, -d 后台运行, -p 本机端口号与容器端口号映射

$ docker run --name myweb -d -p 8080:80 nginx:latest

# 查看正在运行的容器
$ docker ps
$ docker ps -a  #查看所有容器,包括不在运行的

# 停止,开启,重启容器
$ docker stop [容器ID| 别名]
$ docker start [容器ID| 别名]
$ docker restart [容器ID| 别名]

# 删除容器
# -f 强制删除已运行中的容器

$ docker rm  -f  [容器ID| 别名]

# 删除所有已停止的容器, 运行中的不会删除
$ docker container prune

# 进入容器环境
# alpine 版本为最小内容版本,没有bash工具

$ docker exec -it [容器ID|别名] bash
root@b080e601f3d6:/# 

# 操作容器系统,修改nginx默认index.html 文件内容
root@b080e601f3d6:/# cd /usr/share/nginx/html/
root@b080e601f3d6:/usr/share/nginx/html# echo hello nijia > index.html
root@b080e601f3d6:/usr/share/nginx/html# cat index.html
hello nijia
root@b080e601f3d6:/usr/share/nginx/html#  exit

# 容器commit为一个镜像
$ docker commit [容器ID|别名]  [镜像名:tag] 

# Dockerfile 方式创建镜像

# 基于哪个镜像
FROM nginx
# 把当前目录下的文件添加到容器中
ADD ./ /usr/share/nginx/html/


$ docker build -t myweb:v2 .

# dockerhub云编译成镜像
# 需把代码上传github ,代码中必须带Dockerfile文件
# dockerhub上创建仓库,并绑定github仓库
# dockerhub 上操作云编译生成 dockerhub创建的仓库中的镜像


# 本地镜像上传到dockerhub
# 账号/仓库名 必须 dockerhub上已存在,且本地镜像也必须同样命名 , tag 为版本号,可以自取

$ docker push nirvana/myrepo:tag

# 将一个镜像变成一个本地打包文件,供私下交流使用
$ docker save -o myweb-v2.tar myweb:v2

$ docker load -i myweb-v2.tar

容器之间的互相访问 ip方式

########################################################
#第一个容器

# 创建一个nginx 容器
$ docker run --name=myweb -d -p 8080:80 nginx:latest

# 进入容器 查看ip
nijia@nijiadeMacBook-Pro tmp % docker exec -it myweb bash
root@faf73e35ccdf:/# cat /etc/hosts
127.0.0.1    localhost
::1    localhost ip6-localhost ip6-loopback
fe00::0    ip6-localnet
ff00::0    ip6-mcastprefix
ff02::1    ip6-allnodes
ff02::2    ip6-allrouters
172.17.0.2    faf73e35ccdf
root@faf73e35ccdf:/# 

########################################################
#第二个容器

# 创建一个最小版本的lunix 系统
$ docker dun -dit alpine

# 进入这个系统 sh
$ docker exec -it XXX  sh

# 安装 curl
/ # apk add curl

# 通过IP访问第一个容器
/ # curl 172.17.0.2

 

容器之间的互相访问 link方式

########################################################
#第一个容器

# 创建一个nginx 容器 指定名字
$ docker run --name=myweb -d -p 8080:80 nginx:latest

########################################################
#第二个容器
$ docker run -dit —name m2 —link myweb:myweb alpine

# 进入容器查看host
nijia@nijiadeMacBook-Pro tmp % docker exec -it m2 sh
/ # cat /etc/hosts
127.0.0.1    localhost
::1    localhost ip6-localhost ip6-loopback
fe00::0    ip6-localnet
ff00::0    ip6-mcastprefix
ff02::1    ip6-allnodes
ff02::2    ip6-allrouters
172.17.0.2    myweb faf73e35ccdf
172.17.0.3    3bf1d26cb1a3
/ # curl myweb

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值