docker命令

可以在dockerhub下载base image ,可以在github中的docker-library查看要使用组件的Dockerfile

列出所有容器的id

docker container ls -aq

 

删除所有列出来的容器的id

docker container rm $(docker container ls -aq)

 

列出所有镜像

docker image ls

 

通过Dockerfile创建image

在Dockerfile所在的目录下,运行如下命令,其中haha111111为docker id,centos-mine为容器的名称

docker build -t haha111111/centos-mine .

 

运行image并创建容器,其中haha111111为dockerID,centos-min为image名称

docker run haha111111/centos-mine

在后台运行image并创建容器需要加参数-d,形式如下

docker run -d haha111111/centos-mine

列出所有容器的列表

docker container ls -a

docker ps -a

 

进入容器

docker run -it haha111111/centos-mine /bin/bash

若Dockerfile中以CMD定义的shell命令,上面的命令会覆盖Dockerfile中的shell命令

若Dockerfile中以entrypoint定义的shell命令,上面的命令不会覆盖Dockerfile中的shell命令

使用containerID进入容器内部

docker exec -it containerID /bin/bash

在容器内部通过ip a查看ip地址

也可以通过如下命令,在不进入容器的情况下查看ip地址

docker exec containerID ip a

 

停止运行中的容器

docker stop containerID

 

运行容器的时候指定名字

docker run -d --name=demo haha111111/centos-mine

通过容器的名称操作容器

docker stop demo 

 

删除所有退出状态的容器

docker rm $(docker ps -aq)

 

查看容器的详细的信息

docker inspect containerID

 

查看容器的日志

docker logs containerID

 

查看运行中container的ip地址

docker run -it containeriD ip a

 

登录docker

docker login

输入用户名和密码即可

 

推送image到dockerhub

docker push haha111111/centos-mine

更加安全的方式是将dockerhub账户与github账户关联,然后利用docker服务通过Dockerfile为我们build image即可

 

删除image

docker rmi imageID

 

添加mamespace/netns

ip netns add containername

查看mamespace/netns列表

ip netns list

删除mamespace/netns

ip netns delete mamespace/netns

查看指定mamespace/netns的container的ip

sudo ip netns exec test1 ip a

查看本机所有的端口

ip link

设置指定namespace/netns的container的状态为up

sudo ip netns exec containername ip link set dev 端口名称 up

 

添加一对link,初始状态为down

sudo ip link add veth-test1 type veth peer name veth-test2

将veth-test1端口添加到netns test1中

 sudo ip link set veth-test1 netns test1

查看netns test1中的端口

sudo ip netns exec test1 ip link

通过ip a查看本机端口发现veth-test1已经不见了

同样操作将veth-test2添加到netns test2中

给指定namespace的端口添加ip 地址

sudo ip netns exec test1 ip addr add 192.168.1.1/24 dev veth-test1

sudo ip netns exec test2 ip addr add 192.168.1.2/24 dev veth-test2

查看ip地址是否设置成功

sudo ip netns exec test2 ip a

sudo ip netns exec test2 ip a

设置状态为up

sudo ip netns exec test1 ip link set dev veth-test2 up

sudo ip netns exec test2 ip link set dev veth-test2 up

查看状态是否为up

sudo ip netns exec test1 ip a

sudo ip netns exec test2 ip a

查看netns test1是否能ping通netns test2

sudo ip netns exec test1 ping 192.168.1.2

同理也查看netns test2是否能ping通netns test1

 

查看服务是否可用

telnet ip port

查看nginx首页

curl http://nginx所在服务器的ip

将容器内的80端口映射到centos7中,并在centos7内访问nginx的首页

docker run -d --name web -p 80:80 nginx

使用curl 127.0.0.1在centos7中访问nginx首页,使用centos7的ip地址通过外部主机访问nginx首页

 

 

一台服务器中多容器之间通信

容器yoyo11111/flask-redis对容器redis 进行link并指定容器yoyo11111/flask-redis的名字为 flask-redis,通过

-e可以提前对容器 flask-redis进行环境变量的设置,可以进入容器 flask-redis内部,通过env命令查看环境变量

docker run -d -p 5000:5000  --link redis --name flask-redis -e REDIS_HOST=redis yoyo11111/flask-redis

 

 

 

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值