欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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基本命令

宿主机与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基本操作逻辑

docker基本命令

相关标签: docker