Docker操作常用命令

  • 1、Docker操作常用命令
  • 1.1、镜像操作命令(下载、查看、删除)
  • 1.2、容器操作命令
  • 1.3、修改容器内部内容
  • 1.3.1、进容器内部修改
  • 1.3.2、挂载数据到外部修改
  • 1.4、发布镜像
  • 1.5、镜像打包,服务器之间传输
  • 1.6、将镜像推送到docker hub仓库
  • 1.7、查看容器的日志
  • 1.8、将容器内的nginx的首页、配置文件挂载到宿主机上
  • 1.9、容器和宿主机之间完成文件复制


1、Docker操作常用命令

Docker 查看列表 镜像 docker查看指定镜像_nginx

1.1、镜像操作命令(下载、查看、删除)

docker hub,找到nginx镜像。在Tags页面找不同版本的镜像

Docker 查看列表 镜像 docker查看指定镜像_运维_02

#1、下载最新版本镜像
docker pull nginx  
docker pull redis

# 2、下载指定版本的镜像

docker pull nginx:1.20.1  #镜像名:版本名(标签)
docker pull redis:6.2.4

#3、查看本地所有镜像(下载来的镜像都在本地)
docker images  

redis = redis:latest

# 4、删除镜像
docker rmi 镜像名:版本号
docker rmi 镜像id
  • 拉取镜像
  • 拉取指定版本镜像
  • 查看本地的镜像

Docker 查看列表 镜像 docker查看指定镜像_运维_03

  • 删除镜像

1.2、容器操作命令

特别命令(linux命令)

# 重启操作系统
reboot
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
【docker run  设置项   镜像名  】 镜像启动运行的命令(镜像里面默认有的,一般不会写)

# -d:后台运行
# --restart=always: 开机自启
# --name=mynginx :设置启动后容器的名
# 88是宿主机端口,80是容器端口
docker run --name=mynginx   -d  --restart=always -p  88:80   nginx 
	


# 2、查看正在运行的容器
docker ps

# 3、查看所有
docker ps -a

# 4、删除停止的容器
docker rm  容器id/名字
docker rm -f mynginx   #强制删除正在运行中的

# 5、停止容器
docker stop 容器id/名字

# 6、启动容器
docker start 容器id/名字

#7、如果启动容器时,未设置开机自启,则可用以下命令设置应用开机自启
docker update 容器id/名字 --restart=always

启动容器:

Docker 查看列表 镜像 docker查看指定镜像_nginx_04

Docker 查看列表 镜像 docker查看指定镜像_docker_05

1.3、修改容器内部内容

例如:修改容器中nginx的index.html页面

1.3.1、进容器内部修改

# 进入启动的容器内部,修改容器内容  
# -it 以交互模式进入容器 
# /bin/bash  进入容器控制台
# 容器id  这里的容器id是已经启动的容器的id

docker exec -it 容器id  /bin/bash

# 进入容器中nginx的首页
cd /usr/share/nginx/html

修改nginx首页的内容
echo "<h1>Welcome To China</h1>" > index.html

Docker 查看列表 镜像 docker查看指定镜像_nginx_06

Docker 查看列表 镜像 docker查看指定镜像_docker_07

访问容器中linux的首页

Docker 查看列表 镜像 docker查看指定镜像_运维_08

1.3.2、挂载数据到外部修改

意思是建容器内的文件与宿主机建立一种联系,在宿主机修改文件,可以影响到容器内部文件的数据

# -v /data/html:/usr/share/nginx/html:ro
# 挂载  宿主机文件存放路径:容器内要挂载的文件存放路径:容器内只能可读(rw:容器内可读写)

docker run --name=mynginx -d --restart=always -p  88:80 -v /data/html:/usr/share/nginx/html:ro nginx



# 修改页面只需要去宿主机的 /data/html文件夹下,使用以下命令给index.html写入内容“111”
echo 111 >index.html

#我们再去访问容器内的nginx的首页,浏览器就会输出111

Docker 查看列表 镜像 docker查看指定镜像_nginx_09

1.4、发布镜像

将自己修改好的镜像提交(先存到本地仓库)

# 首先查看刚刚修改过的镜像的id(1.3中修改的镜像)
docker ps

# 提交修改过的镜像 -a:指明作者  -m:修改的内容
docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]  
# 容器id 刚刚修改的id,例如下图的nginx
# mynginx:2.0 指定推送后的镜像的 镜像名:版本号为
docker commit -a "zhangsan"  -m "改变首页输出内容" 容器id mynginx:2.0

Docker 查看列表 镜像 docker查看指定镜像_nginx_10

  • 查看本地的镜像,刚刚提交的镜像已存储到本地仓库
docker images

Docker 查看列表 镜像 docker查看指定镜像_nginx_11

  • 启动新提交的镜像,并以交互命令进入启动后的容器
docker run --name=mynginx3   -d  --restart=always -p  90:80   mynginx:2.0

docker exec -it 29be6ff9a4f947a9cda043795daafbf8733357bd8f83ea03eefe6e384b4bc4c6 /bin/bash

Docker 查看列表 镜像 docker查看指定镜像_nginx_12

在物理机访问刚刚启动的容器

Docker 查看列表 镜像 docker查看指定镜像_容器_13

1.5、镜像打包,服务器之间传输

将镜像打包,传输到别的服务器,在别的服务器docker中使用该镜像

# 1、将镜像保存成压缩包
docker save -o abc.tar nginx:v2.0

# 2、离线安装,通过u盘拷贝

# 别的机器加载这个镜像
docker load -i abc.tar
  • 将镜像打包
docker ps
docker save -o abc.tar nginx:v2.0

Docker 查看列表 镜像 docker查看指定镜像_docker_14

  • 查看打包后的镜像
ls

Docker 查看列表 镜像 docker查看指定镜像_docker_15

  • 将在服务器1(192.168.126.129)上打包的容器传输到服务器2(192.168.126.130):
# 第一个root指192.168.126.130的root账号,第二个root是值将abc.tar放到主机192.168.126.130的root目录下

scp abc.tar root@192.168.126.130:/root/

Docker 查看列表 镜像 docker查看指定镜像_运维_16

  • 在别的服务器上使用该镜像
docker load -i abc.tar

1.6、将镜像推送到docker hub仓库

推送镜像到docker hub;应用市场

# docker 官方命令
docker tag local-image:tagname new-repo:tagname
docker push new-repo:tagname

实际命令

#首先查看本地有的镜像
docker images

# 把旧镜像的名字(nginx2:v2.0),zhansan为你的docker hub登录名,改成要推到docker仓库的新版名字(nginx:v1.0)
docker tag mynginx:2.0  zhansan/nginx:v1.0

# 登录到docker hub,依次你的docker hub账号密码
docker login       


# 推送       docker hub登录名/仓库:镜像版本
docker push  zhangsan/nginx:v1.0

# 推送完成镜像后退出
docker logout


# 别的机器下载
docker pull zhangsan/nginx:v1.0

Docker 查看列表 镜像 docker查看指定镜像_容器_17

1.7、查看容器的日志

docker logs  容器id/容器名

Docker 查看列表 镜像 docker查看指定镜像_docker_18

1.8、将容器内的nginx的首页、配置文件挂载到宿主机上

命令中的nginx.conf提前在宿主机指定位置创建

# 下边命令是docker启动命令
# docker 经常修改nginx配置文件
docker run -d -p 80:80 \
-v /data/html:/usr/share/nginx/html:ro \
-v /data/conf/nginx.conf:/etc/nginx/nginx.conf \
--name mynginx-02 \
nginx

1.9、容器和宿主机之间完成文件复制

#把容器指定位置的东西复制出来 
docker cp 5eff66eec7e1:/etc/nginx/nginx.conf  /data/conf/nginx.conf

#把外面的内容复制到容器里面
docker cp  /data/conf/nginx.conf  5eff66eec7e1:/etc/nginx/nginx.conf