docker笔记

docker常用命令

通过Dockerfile构建一个镜像

docker build -t registry.nervhub.nervstack.io/base_image/dingcloud_jdk8:0.0.5 .

启动一个自定义镜像

docker run -itd --name duanjiale registry.nervhub.nervstack.io/base_image/dingcloud_jdk8:0.03 /bin/bash

将正在运行的容器打包成镜像

docker commit 《容器名称》 《镜像名称》

docker commit duanjiale registry.nervhub.nervstack.io/base_image/dingcloud_jdk8:0.04

查看Exited容器日志

docker inspect --format '{{.LogPath}}' 容器名称/容器id

将主机/www/runoob目录拷贝到容器96f7f14e99ab的/www目录下。

docker cp /www/runoob 96f7f14e99ab:/www/

将主机/www/runoob目录拷贝到容器96f7f14e99ab中,目录重命名为www。

docker cp /www/runoob 96f7f14e99ab:/www

将容器96f7f14e99ab的/www目录拷贝到主机的/tmp目录中。

docker cp  96f7f14e99ab:/www /tmp/

Docker Hub

docker push duanjiale/duan:tagname

查看容器的详细信息

docker inspect edd8c720b5ec

docker inspect --format '{{.LogPath}}' 97069f94437b

启动容器(-p 端口映射)

docker run -d -p 80:80 nginx

dockerr run -d -p 8888:80 --name nginx01 nginx

docker run -it -d -p 8888:80 --name web1 centos7-sshd-httpd  /init.sh

docker run -it -d -p 映射端口:端口  容器名称  镜像名称 /bin/bash

在容器外执行容器内命令

docker exec <docker id> /bin/bash -c '命令'

或者

docker exec -it <docker id> /bin/bash -c '命令'

-it一般不加

删除容器

docker rm -f `docker ps -a -q`

查看容器

docker ps

docker ps -a

停止容器

docker stop nginx01

启动容器

docker start nginx01

进入容器方法

启动时进去方法

docker run -it nginx01:latest /bin/bash

docker run -it -d -p 8888:80 --name web4 nginx /bin/bash

使用root用户登陆容器内部

docker exec -it --user root 7d9d3c9acaf2 /bin/bash

启动后进入容器的方法

docker run -it centos:latest

推荐使用:

docker exec -it clsn1 /bin/bash

查看当前主机镜像列表

docker image list

docker images

导出镜像

docker image save centos > docker-centos.tar.gz

删除镜像

docker image rmi centos:latest

添加 -f 强制删除

导入镜像

docker image load -i docker-centos.tar.gz

查看镜像的详细信息

docker image inspect centos

查看镜像版本

docker search myapp:v1

查看容器端口号

docker container inspect nginx01

Docker 挂载卷

docker run -d -p 8080:80 --name nginx01 -v   /data/:/usr/share/nginx/html nginx:latest

容器内站点目录:/usr/share/nginx/html

设置共享卷

docker run -d -p 8888:80 -v /data:/usr/share/nginx/html nginx:latest

测试:curl  192.168.102.128:8888

查看卷列表

docker volume ls

创建一个简单卷

docker volume create

创建指定卷名的卷

docker volume create --name nginx

查看卷路径

docker  volume  inspect  nginx

创建Docker时挂载卷

docker run -d -p 9000:80 -v nginx:/usr/share/nginx/html  nginx:latest

echo 'www.djl.com' > /var/lib/docker/volumes/nginx/_data/index.html

curl  192.168.102.128:9000

    www.djl.com

实现Docker共享卷挂载

docker run -d -P --volumes-from  bf26d05d4c57  nginx:latest

--volumes-from # 指定共享卷所在的容器

创建仓库

docker run -d -p 5000:5000 --restart=always --name registry -v /opt/myregistry:/var/lib/registry registry

将本地镜像上传到harbor仓库

1、修改镜像标签

docker tag busybox:latest  192.168.102.128:5000/eden/busybox:1.0

docker tag 【本地镜像名称】 【harbor仓库地址/项目名称/镜像名称】

2、将新打标签的镜像上传镜像到仓库

docker push 192.168.102.128:5000/eden/busybox

将新的镜像拉取下来

docker pull 192.168.102.128:5000/eden/busybox:1.0

docker pull <image>

登录用户

docker login 192.168.102.128:5000

网页推送镜像

docker tag centos:7 192.168.102.128/web/centos7:v1.0

查看nginx01:v1的配置内容

docker  inspect nginx01:v1

创建自签名证书

# openssl genrsa -out /data/ca/harbor-ca.key

# openssl req -x509 -new -nodes -key /data/ca/harbor-ca.key  -subj "/CN=harbor.linux.com" -days 7120 -out /data/ca/harbor-ca.crt

不为容器配置网络功能

none: 不为容器配置任何网络功能,没有网络

docker run -it --network none busybox:latest /bin/sh

docper run -it --net=none busybox:latest /bin/sh

与其他容器共享网络配置

container: 与另一个运行中的容器共享network

docker run  -it --network container:test1  busybox:latest  /bin/sh

(test1是一台有ip的容器机)

使用宿主机网络

host: 与主机共享network

docker run -it --network host busybox:latest /bin/sh

docker run -it --net=host busybox:latest /bin/sh

查看网络列表

docker network list

删除网络列表

docker network rm host

创建容器,并启动网卡配置

docker run -itd --name nginx1 -p 8080:80 --net=none nginx

pipework br0 nginx1 192.168.102.111/24@192.168.102.1

#随便的 ip/24  @网关

ip命令设置混杂

ip link set ens33 promisc on  设置混杂

ip link set ens33 promisc off  取消混杂

在主机上创建macvlan网络

dokcer network create -d macvlan --subnet=172.16.10.0/24 --gateway=172.16.10.1 -o parent=ens37 mac1

① -d 指定docker 网络 macvlan

② --subnet 指定 macvlan 网络所在的网段(可随便起)

③ --gateway 指定网关

④ -o parent 指定用来分配 macvlan 网络的物理网卡,     ifconfig里的真实机器的网卡名(如ens33)

运行容器c1指定使用macvlan 网络

docker run -itd --name c1 --ip=172.16.10.111 --network mac1 busybox

① --ip 指定容器c1使用的ip

② --network 指定 macvlan 网络

统计docker信息,查看各种情况的命令

docker stats

停用所有容器

docker-compose stop

停用移除所有容器以及网络相关

docker-compose down

启用容器

docker-compose start

创建启用容器

docker-compose up

放后台

docker-compose up -d

删除所有容器

docker-compose rm

列出所有容器

docker-compose ps

查看服务器输出

docker-compose logs

docker搜索镜像

docker search mysql

# 停止所有 Exited 的容器

docker ps -a | grep "Exited" | awk '{print $1 }'|xargs docker stop

# 删除所有 Exited 的容器

docker ps -a | grep "Exited" | awk '{print $1 }'|xargs docker rm

# 删除所有 none 镜像

docker images|grep none|awk '{print $3 }'|xargs docker rmi

批量导出镜像,保存到本地

# 将机器上的所有镜像打包到images.tar文件里面

docker save $(docker images | grep -v REPOSITORY | awk 'BEGIN{OFS=":";ORS=" "}{print $1,$2}') -o images.tar

docker save $(docker images) > /home/image.tar

加载镜像到docker中

docker load < /home/image.tar

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值