docker命令大集合

1、运行一个容器

docker run -d  ljx/my-nginx:v1 /usr/local/nginx/sbin/nginx
-d  #表示后台运行

2、指定端口号运行一个容器

docker run -d -p 90:80 ljx/my-nginx:v1 /usr/local/nginx/sbin/nginx
-p    #指定端口号,90表示宿主机的端口号,80表示容器的端口号
-P    #随机映射端口
-p    #hostPort:containerPort     指定要映射的端口:容器端口
-p    #ip:hostPort:containerPort  指定要映射的ip地址:端口:容器端口
-p    #ip::containerPort          指定要映射的ip地址:容器端口
-p    #hostPort:containerPort -p hostPort:containerPort   指定多个要映射的端口:多个容器端口

3、指定容器名称及数据卷位置

docker run -d --name mynginx2 -v /root/ljx:/usr/local/nginx/html -p 98:80 ljx/my-nginx:v1 /usr/local/nginx/sbin/nginx
-v       #指定数据卷,/root/ljx 表示宿主机的挂载位置,/usr/local/nginx/html 表示容器的挂载位置
--name   #指定容器启动后名称,方便记忆

4、docker挂载数据卷容器

docker run -it --name mycentos3 --volumes-from mycentos2 centos
参数解释:
--volumes-from   后面接需要挂载的容器名称

5、查看容器

[root@docker ~]# docker ps -l
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                NAMES
a44336e186ac        ljx/my-nginx:v1     "/usr/local/nginx/sb…"   5 seconds ago       Up 3 seconds        0.0.0.0:90->80/tcp   elegant_mayer
-l    #表示查看最近启动的容器状态
-a    #表示所有容器的状态,包括未运行的容器

6、进入容器

docker exec -it (容器的id) /bin/bash

7、查看镜像

[root@docker ~]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
ljx/my-nginx        v1                  224adc4e6cd1        58 seconds ago      516MB

8、查看容器的映射端口

docker port (容器名称或id)

9、查看未运行容器的id号

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

10、删除未运行的所有容器

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

11、查看docker容器数据卷位置

docker inspect -f {{.Volumes}} mycentos

12、查看docker容器pid

[root@docker ~]# docker inspect --format "{{.State.Pid}}" 3c0468a64c27
10717

13、使用docker容器pid进入容器

[root@docker ~]# nsenter --target 10717 --mount --uts --ipc --net --pid

14、查看容器ip地址
14.1、方法1:

[root@docker ~]# docker inspect --format='{{.NetworkSettings.IPAddress}}' 0275ff643a18
172.17.0.2

14.2、方法2:

[root@docker ~]# docker inspect 0275ff643a18 |grep IPAddress
            "SecondaryIPAddresses": null,
            "IPAddress": "172.17.0.2",
                    "IPAddress": "172.17.0.2",

15、查看docker容器数据卷位置

docker inspect -f {{.Volumes}} mycentos

16、以json格式打印容器的详细信息

docker inspect (容器名称\ID

17、查看容器的详细信息

docker inspect (容器名称或ID)

18、查看容器的映射端口

docker port (容器名称)

19、查看容器的日志

docker logs -f -t --since="2017-05-31" --tail=10 edu_web_1
--since      #此参数指定了输出日志开始日期,即只输出指定日期之后的日志。
-f           #查看实时日志
-t           #查看日志产生的日期
-tail=10     #查看最后的10条日志。
edu_web_1    #容器名称

20、手动构建镜像

docker commit -m "my_nginx" 70dad80fc88f ljx/my-nginx:v1
说明:如果对容器镜像修改后可以使用commit来提交,保存修改后的信息,只对修改的配置文件或创建的目录生效。添加的数据不生效。

21、使用Dockerfile构建镜像(一处构建到处使用)

创建目录
mkdir /opt/docker-file/nginx
cd /opt/docker-file/nginx
vim /opt/docker-file/nginx/Dockerfile
# This is My first Dockerfile
# Version 1.0
# Author: ljx
# Base images
FROM centos
# MAINTAINER
MAINTAINER Jason Liu

# ADD
ADD nginx-1.15.1.tar.gz /usr/local/src

#RUN
RUN yum -y install wget gcc gcc-c++ make openssl-devel pcre-devel
RUN useradd nginx -s /sbin/nologin -M

#WORKDIR
WORKDIR /usr/local/src/nginx-1.15.1
RUN ./configure --user=nginx --group=nginx --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module && make && make install

RUN echo "daemon off;" >> /usr/local/nginx/conf/nginx.conf

ENV PATH /usr/local/nginx/sbin:$PATH
EXPOSE 80

CMD ["nginx"]

22、构建镜像

docker build -t mynginx1:v1 /opt/docker-file/nginx
build                      #构建
-t                         #指定构建后镜像的名称
/opt/docker-file/nginx     #Dockerfile文件所在的位置,也可以使用.(点)表示

23、搭建私有仓库

[root@docker ~]# docker pull registry
#下载registry镜像,用于搭建私有仓库

24、检查是否下载成功

[root@docker ~]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
registry            latest              b2b03e9146e1        45 hours ago        33.3MB

25、启动registry

[root@docker ~]# docker run -d -p 5000:5000 registry
[root@docker ~]# docker ps -l
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                    NAMES
328a0a7b9948        registry            "/entrypoint.sh /etc…"   5 seconds ago       Up 4 seconds        0.0.0.0:5000->5000/tcp   loving_kowalevski
-p50005000    #表示将容器的5000端口映射到本地的5000端口,前者表示本地的端口,后者表示容器的端口

26、重命名镜像名称

[root@docker ~]# docker tag ljx/my-nginx:v1 10.0.0.10:5000/test/nginx:v1
tag              #为新的镜像打一个标签(相当于重命名镜像名称)
10.0.0.10:5000   #表示私有仓库的地址

27、上传到私有仓库

docker push 10.0.0.10:5000/test/nginx:v1
push     #上传镜像到私有仓库
pull     #拉取镜像到本地

28、docker阿里云加速器(用于提高镜像的下载速度)

tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://1lys06bi.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

29、容器到宿主机文件拷贝

docker cp 15f285437203:/usr/local/tomcat/conf /root/
#说明:此命令是将容器的conf目录拷贝到本地的/root目录下面

30、宿主机到容器的文件拷贝

docker cp ROOT 8d4603544cbe:/usr/local/tomcat/webapps
#说明:此命令是将宿主机的ROOT目录拷贝到容器的webapps下面
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

运维那些事~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值