docker基本命令

docker基本命令

查找镜像

[root@docker01 ~]# docker search busybox

拉取镜像

[root@docker01 ~]# docker pull busybox

把镜像导出到本地

[root@docker01 ~]# docker save -o busybox.tar busybox:latest 

或者

[root@docker01 ~]# docker save > busybox1.tar busybox:latest
[root@docker01 ~]# ls
anaconda-ks.cfg  busybox.tar  initial-setup-ks.cfg  公共  模板  视频  图片  文档  下载  音乐  桌面
[root@docker01 ~]# du -h busybox.tar
1.4M	busybox.tar

查看本地镜像

[root@docker01 ~]# docker images

PS: 虽然我们查看到的镜像标签为latest(最新的),但并不表示它一定是最

新的且标签不固定,可变动,镜像如果没有写标签,默认以latest为标签

删除镜像

[root@docker01 ~]# docker rmi -f busybox:latest //强制删除

导入镜像

[root@docker01 ~]# docker load < busybox1.tar  

或者

[root@docker01 ~]# docker load -i busybox.tar

查看正在运行的容器

[root@docker01 ~]# docker ps

查看所有的容器

[root@docker01 ~]# docker ps -a

删除容器

[root@docker01 ~]# docker rm -f 容器id

或者

[root@docker01 ~]# docker rm -f 容器name  //强制删除

创建容器

[root@docker01 ~]# docker create -it --name dc01 centos:7 

PS:创建完成以后容器是created状态,没有启动

启动一个容器

[root@docker01 ~]# 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开启而运行)

批量操作所有容器

# 批量开启容器
[root@docker01 ~]# docker start $(docker ps -aq)
96f8d1af3797
fc61c1c30b2b
# 批量停止容器
[root@docker01 ~]# docker stop $(docker ps -aq)
96f8d1af3797
fc61c1c30b2b
#批量删除容器
[root@docker01 ~]# docker rm -f $(docker ps -aq)
96f8d1af3797
fc61c1c30b2b
#批量删除容器
[root@docker01 ~]# docker ps -aq | xargs docker rm -f

进入容器

attach和exec都可以进入容器

区别为:

1. 使用exit退出时attach回关闭容器,exec不会
2. exec可以在命令行内远程操作容器
3. exec会启用一个新的进程,相互独立,而attach不会生成新的进程,多人使用时建议exec

使用attach进入容器,他们只会有一个进程号,任何操作都会同步

docker基本命令_第1张图片
docker基本命令_第2张图片

宿主机与docker容器互传文件

#宿主机传输给docker容器
[root@docker01 ~]# docker cp nginx-1.17.5.tar.gz dc01:/root

#docker容器传输给宿主机
[root@docker01 ~]# docker cp dc01:/root/test.txt .

dokcer应用案例:容器内部署nginx

[root@docker01 ~]# docker cp nginx-1.17.5.tar.gz dc01:/root
[root@docker01 ~]# docker exec -it dc01 /bin/bash
 [root@6916c8c9b3fc ~]# yum install gcc pcre pcre-devel zlib zlib-devel openssl openssl-devel -y
[root@badccc243dff ~]# tar -zxf nginx-1.17.5.tar.gz
[root@badccc243dff ~]# cd nginx-1.17.5
[root@6916c8c9b3fc nginx-1.17.5]# useradd -M -s /sbin/nologin nginx
[root@6916c8c9b3fc nginx-1.17.5]# ./configure --prefix=/usr/local/nginx --user=nginx --group=nginx && make && make install
[root@e6bdc6bb1648 nginx-1.17.5]# ln -s /usr/local/nginx/sbin/* /usr/local/sbin/
[root@e6bdc6bb1648 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
[root@e6bdc6bb1648 nginx-1.17.5]# nginx 
[root@e6bdc6bb1648 ~]# echo 'Hello Word' > /usr/local/nginx/html/index.html
[root@e6bdc6bb1648 ~]# curl 127.0.0.1
Hello Word

容器打包成镜像(commit)

docker commit 提交容器副本使之成为一个新的镜像
docker commit -a=“作者” -m=“描述”   容器id    新的镜像名:标签

镜像打包

[root@docker01 ~]# docker commit -a='lzs' -m='installed nginx' dc01 mycentos:nginx

导出到本地

[root@docker01 ~]# docker save -o mycenos.tar  mycentos:nginx

scp拷贝docker03

[root@docker01 ~]# scp -rp mycenos.tar [email protected]:/root/

docker03直接通过这个镜像运行容器

[root@docker03 ~]# docker run -itd --name dc01 mycentos:nginx 
[root@docker03 ~]# docker exec -it dc01 /bin/bash
[root@e42e1e72445b /]# nginx
[root@e42e1e72445b /]# curl 127.0.0.1
Hello Word

docker基本操作逻辑

docker基本命令_第3张图片

你可能感兴趣的:(docker,docker)