docker基本命令
程序员文章站
2022-03-30 10:42:04
...
docker基本命令
查找镜像
[aaa@qq.com ~]# docker search busybox
拉取镜像
[aaa@qq.com ~]# docker pull busybox
把镜像导出到本地
[aaa@qq.com ~]# docker save -o busybox.tar busybox:latest
或者
[aaa@qq.com ~]# docker save > busybox1.tar busybox:latest
[aaa@qq.com ~]# ls
anaconda-ks.cfg busybox.tar initial-setup-ks.cfg 公共 模板 视频 图片 文档 下载 音乐 桌面
[aaa@qq.com ~]# du -h busybox.tar
1.4M busybox.tar
查看本地镜像
[aaa@qq.com ~]# docker images
PS: 虽然我们查看到的镜像标签为latest(最新的),但并不表示它一定是最
新的且标签不固定,可变动,镜像如果没有写标签,默认以latest为标签
删除镜像
[aaa@qq.com ~]# docker rmi -f busybox:latest //强制删除
导入镜像
[aaa@qq.com ~]# docker load < busybox1.tar
或者
[aaa@qq.com ~]# docker load -i busybox.tar
查看正在运行的容器
[aaa@qq.com ~]# docker ps
查看所有的容器
[aaa@qq.com ~]# docker ps -a
删除容器
[aaa@qq.com ~]# docker rm -f 容器id
或者
[aaa@qq.com ~]# docker rm -f 容器name //强制删除
创建容器
[aaa@qq.com ~]# docker create -it --name dc01 centos:7
PS:创建完成以后容器是created状态,没有启动
启动一个容器
[aaa@qq.com ~]# docker start dc01
dc01
docker stop:停止容器
docker start:开启容器
docker restart:重启容器
docker pause:挂起一个容器
docker unpause:恢复容器
创建并启动一个容器
docker run [options] image 基于一个镜像开启一个容器
-d:在后台运行一个容器
-i:已交互模式运行容器
-t:给容器分配一个伪终端
-P:随机指定映射端口
-p:指定端口映射,格式:主机端口:容器端口
-v:建立宿主机与容器目录同步
--name="mysql": 伪容器指定一个名字(如果不指定会有一个随机名字)
--restart=always : 始终保持运行(随着docker开启而运行)
批量操作所有容器
# 批量开启容器
[aaa@qq.com ~]# docker start $(docker ps -aq)
96f8d1af3797
fc61c1c30b2b
# 批量停止容器
[aaa@qq.com ~]# docker stop $(docker ps -aq)
96f8d1af3797
fc61c1c30b2b
#批量删除容器
[aaa@qq.com ~]# docker rm -f $(docker ps -aq)
96f8d1af3797
fc61c1c30b2b
#批量删除容器
[aaa@qq.com ~]# docker ps -aq | xargs docker rm -f
进入容器
attach和exec都可以进入容器
区别为:
1. 使用exit退出时attach回关闭容器,exec不会
2. exec可以在命令行内远程操作容器
3. exec会启用一个新的进程,相互独立,而attach不会生成新的进程,多人使用时建议exec
使用attach进入容器,他们只会有一个进程号,任何操作都会同步
宿主机与docker容器互传文件
#宿主机传输给docker容器
[aaa@qq.com ~]# docker cp nginx-1.17.5.tar.gz dc01:/root
#docker容器传输给宿主机
[aaa@qq.com ~]# docker cp dc01:/root/test.txt .
dokcer应用案例:容器内部署nginx
[aaa@qq.com ~]# docker cp nginx-1.17.5.tar.gz dc01:/root
[aaa@qq.com ~]# docker exec -it dc01 /bin/bash
[aaa@qq.com ~]# yum install gcc pcre pcre-devel zlib zlib-devel openssl openssl-devel -y
[aaa@qq.com ~]# tar -zxf nginx-1.17.5.tar.gz
[aaa@qq.com ~]# cd nginx-1.17.5
[aaa@qq.com nginx-1.17.5]# useradd -M -s /sbin/nologin nginx
[aaa@qq.com nginx-1.17.5]# ./configure --prefix=/usr/local/nginx --user=nginx --group=nginx && make && make install
[aaa@qq.com nginx-1.17.5]# ln -s /usr/local/nginx/sbin/* /usr/local/sbin/
[aaa@qq.com nginx-1.17.5]# nginx -t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
[aaa@qq.com nginx-1.17.5]# nginx
[aaa@qq.com ~]# echo 'Hello Word' > /usr/local/nginx/html/index.html
[aaa@qq.com ~]# curl 127.0.0.1
Hello Word
容器打包成镜像(commit)
docker commit 提交容器副本使之成为一个新的镜像
docker commit -a=“作者” -m=“描述” 容器id 新的镜像名:标签
镜像打包
[aaa@qq.com ~]# docker commit -a='lzs' -m='installed nginx' dc01 mycentos:nginx
导出到本地
[aaa@qq.com ~]# docker save -o mycenos.tar mycentos:nginx
scp拷贝docker03
[aaa@qq.com ~]# scp -rp mycenos.tar aaa@qq.com:/root/
docker03直接通过这个镜像运行容器
[aaa@qq.com ~]# docker run -itd --name dc01 mycentos:nginx
[aaa@qq.com ~]# docker exec -it dc01 /bin/bash
[aaa@qq.com /]# nginx
[aaa@qq.com /]# curl 127.0.0.1
Hello Word
docker基本操作逻辑
下一篇: Vue中的MVVM