docker入门

0.docker主要操作

在这里插入图片描述

1.docker常用命令

#解决docker运行时必须加sudo的问题
(base) matrix@matrix:~$ sudo groupadd docker #添加docker组
groupadd: group 'docker' already exists
(base) matrix@matrix:~$ sudo gpasswd -a $USER docker#将登陆用户名添加到docker组下 $USER为环境变量
Adding user matrix to group docker
(base) matrix@matrix:~$ newgrp docker #更新用户组
(base) matrix@matrix:~$ docker ps #检验


# 下载docker镜像  docker pull nginx  = docker pull nginx:latest
(base) matrix@matrix:~$ docker pull nginx  

# 查看现有的docker image
(base) matrix@matrix:~$ docker images

# 运行容器, sudo docker run -d -p 80:80 nginx -d后台运行 -p指定端口映射,将容器的80端口映射到外部85端口,然后在浏览器中访问127.0.0.1:85即可访问到运行的docker中的nginx程序了
(base) matrix@matrix:~$ docker run -d -p 85:80 nginx

# docker ps 查看正在运行的docker容器
(base) matrix@matrix:~$ docker ps

======================================================================================================
#进入容器  -t 分配一个伪终端
(base) matrix@matrix:~$ docker exec -it 0d3d8cd9782ae1059ad1a71f57596505ae598c7b812efb3c48cab48ff20ca316 bash
#退出容器
root@0d3d8cd9782a:/usr/share/nginx/html# exit

#强制删除 id为0d开头的那个镜像
(base) matrix@matrix:~$ docker rm -f 0d

#将id为b1开头的容器保存为新的镜像m_ng
(base) matrix@matrix:~$ docker commit b1 m_ng
=======================================================================================================
# 通过dockerfile创建镜像
# dockerfile中的内容如下:
FROM nginx #基于nginx镜像创建
ADD ./ /usr/share/nginx/html/ #将当前文件夹下的内容拷贝到/usr/share/nginx/html/ 路径下

# 通过bulid命令创建镜像 -t指定镜像名 最后的.表示当前路径
(base) matrix@matrix:~/DockerHome$ docker build -t m_ng_dockerfile .

========================================================================================================================
# docker存储为tar文件
(base) matrix@matrix:~/DockerHome$ docker save m_ng_dockerfile > backup.tar
#重新加载镜像
(base) matrix@matrix:~/DockerHome$ docker load < backup.tar 
#解决docker运行时必须加sudo的问题
(base) matrix@matrix:~$ sudo groupadd docker #添加docker组
groupadd: group 'docker' already exists
(base) matrix@matrix:~$ sudo gpasswd -a $USER docker#将登陆用户名添加到docker组下 $USER为环境变量
Adding user matrix to group docker
(base) matrix@matrix:~$ newgrp docker #更新用户组
(base) matrix@matrix:~$ docker ps #检验


# 下载docker镜像  docker pull nginx  = docker pull nginx:latest
$ docker pull nginx  
Using default tag: latest
latest: Pulling from library/nginx
6ec7b7d162b2: Pull complete 
cb420a90068e: Pull complete 
2766c0bf2b07: Pull complete 
e05167b6a99d: Pull complete 
70ac9d795e79: Pull complete 
Digest: sha256:4cf620a5c81390ee209398ecc18e5fb9dd0f5155cd82adcbae532fec94006fb9
Status: Downloaded newer image for nginx:latest
docker.io/library/nginx:latest
[node1] (local) root@192.168.0.8 ~

# 查看现有的docker image
$ docker images
REPOSITORY   TAG       IMAGE ID       CREATED       SIZE
nginx        latest    ae2feff98a0c   11 days ago   133MB
[node1] (local) root@192.168.0.8 ~

# sudo docker run -d -p 80:80 nginx  运行nginx容器,-d后台运行 -p指定端口映射,将容器的80端口映射到外部85端口,然后在浏览器中访问127.0.0.1:85即可访问到运行的docker中的nginx程序了
(base) matrix@matrix:~$ docker run -d -p 85:80 nginx
b13afbb30d1fe358e0b98681cc98b016a377dacdcfc2dd82bbef1b2b085eb457

# docker ps 查看正在运行的docker进程
(base) matrix@matrix:~$ docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                NAMES
b13afbb30d1f        nginx               "/docker-entrypoint.…"   18 seconds ago      Up 17 seconds       0.0.0.0:80->80/tcp   mystifying_newton

======================================================================================================
#进入容器  -t 分配一个伪终端
(base) matrix@matrix:~$ docker exec -it 0d3d8cd9782ae1059ad1a71f57596505ae598c7b812efb3c48cab48ff20ca316 bash
root@0d3d8cd9782a:/# ls  
bin   docker-entrypoint.d   home   media  proc	sbin  tmp
boot  docker-entrypoint.sh  lib    mnt	  root	srv   usr
dev   etc		    lib64  opt	  run	sys   var
root@0d3d8cd9782a:/# cd /usr/share/nginx/html/
root@0d3d8cd9782a:/usr/share/nginx/html# ls 
50x.html  index.html

#修改文件中的内容
root@0d3d8cd9782a:/usr/share/nginx/html# echo "hello docker nginx" > index.html 

#退出容器
root@0d3d8cd9782a:/usr/share/nginx/html# exit
exit

#显示正在运行的docker 镜像
(base) matrix@matrix:~$ docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                NAMES
0d3d8cd9782a        nginx               "/docker-entrypoint.…"   21 minutes ago      Up 21 minutes       0.0.0.0:85->80/tcp   stupefied_solomon
b13afbb30d1f        nginx               "/docker-entrypoint.…"   41 minutes ago      Up 41 minutes       0.0.0.0:80->80/tcp   mystifying_newton

#强制删除 id为0d开头的那个镜像
(base) matrix@matrix:~$ docker rm -f 0d
0d

#再次查看镜像 可看到0d镜像已经被删除了
(base) matrix@matrix:~$ docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                NAMES
b13afbb30d1f        nginx               "/docker-entrypoint.…"   42 minutes ago      Up 42 minutes       0.0.0.0:80->80/tcp   mystifying_newton

#将b1容器保存为新的镜像m_ng
(base) matrix@matrix:~$ docker commit b1 m_ng
sha256:3a451154fdd9d660bc359d3cc588d27b5e103941c77dba02d91109fd00037cdb

#再次查看所有的容器
(base) matrix@matrix:~$ docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
m_ng                latest              3a451154fdd9        11 seconds ago      133MB
nginx               latest              ae2feff98a0c        11 days ago         133MB
ubuntu              latest              f643c72bc252        4 weeks ago         72.9MB

#在90端口上运行刚刚保存的镜像
(base) matrix@matrix:~$ docker run -d -p 90:80 m_ng
37c78b6fc596df71f3b300e31cb62c433bffc4e3208b9e9d5b560c36d8b3b814

=======================================================================================================
#通过dockerfile创建镜像
dockerfile中的内容如下:

FROM nginx #基于nginx镜像创建
ADD ./ /usr/share/nginx/html/ #将当前文件夹下的内容拷贝到/usr/share/nginx/html/ 路径下

#创建index.html文件
(base) matrix@matrix:~/DockerHome$ vim index.html
(base) matrix@matrix:~/DockerHome$ ll
-rw-rw-r--  1 matrix docker   42 1227 22:22 dockerfile
-rw-rw-r--  1 matrix docker   20 1227 22:23 index.html

# 通过bulid命令创建镜像 -t指定镜像名
(base) matrix@matrix:~/DockerHome$ docker build -t m_ng_dockerfile .
Sending build context to Docker daemon  3.072kB
Step 1/2 : FROM nginx
 ---> ae2feff98a0c
Step 2/2 : ADD ./ /usr/share/nginx/html/
 ---> 5390dac3b964
Successfully built 5390dac3b964
Successfully tagged m_ng_dockerfile:latest

#查看现有镜像
(base) matrix@matrix:~/DockerHome$ docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
m_ng_dockerfile     latest              5390dac3b964        16 seconds ago      133MB
m_ng                latest              3a451154fdd9        11 minutes ago      133MB
nginx               latest              ae2feff98a0c        11 days ago         133MB
ubuntu              latest              f643c72bc252        4 weeks ago         72.9MB

#运行刚刚创建的镜像
(base) matrix@matrix:~/DockerHome$ docker run -d -p 100:80 m_ng_dockerfile
22ba8c948fec33e60a01b5bd802b0b1965e0c5d303d6f082a1fb730416f92d8b
(base) matrix@matrix:~/DockerHome$ docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                 NAMES
22ba8c948fec        m_ng_dockerfile     "/docker-entrypoint.…"   19 seconds ago      Up 18 seconds       0.0.0.0:100->80/tcp   agitated_jennings
37c78b6fc596        m_ng                "/docker-entrypoint.…"   11 minutes ago      Up 11 minutes       0.0.0.0:90->80/tcp    charming_bassi
b13afbb30d1f        nginx               "/docker-entrypoint.…"   59 minutes ago      Up 59 minutes       0.0.0.0:80->80/tcp    mystifying_newton
========================================================================================================================

# docker存储为tar文件
(base) matrix@matrix:~/DockerHome$ docker save m_ng_dockerfile > backup.tar
(base) matrix@matrix:~/DockerHome$ ls
backup.tar  dockerfile  index.html

# 删除已经缓存过的镜像
(base) matrix@matrix:~/DockerHome$ docker rmi m_ng_dockerfile

# 有容器基于这个镜像且在运行,不能删
Error response from daemon: conflict: unable to remove repository reference "m_ng_dockerfile" (must force) - container 22ba8c948fec is using its referenced image 5390dac3b964
(base) matrix@matrix:~/DockerHome$ docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                 NAMES
22ba8c948fec        m_ng_dockerfile     "/docker-entrypoint.…"   14 minutes ago      Up 14 minutes       0.0.0.0:100->80/tcp   agitated_jennings
37c78b6fc596        m_ng                "/docker-entrypoint.…"   25 minutes ago      Up 25 minutes       0.0.0.0:90->80/tcp    charming_bassi
b13afbb30d1f        nginx               "/docker-entrypoint.…"   About an hour ago   Up About an hour    0.0.0.0:80->80/tcp    mystifying_newton
# 删除容器
(base) matrix@matrix:~/DockerHome$ docker rm -f 22
22
#再次删除镜像
(base) matrix@matrix:~/DockerHome$ docker rmi m_ng_dockerfile
Untagged: m_ng_dockerfile:latest
Deleted: sha256:5390dac3b964e7d908e3865fff503d4a27dad4c9df2328958de622134cb00c0d
Deleted: sha256:890ced2335fe1c384d85a90e9a044bcc107040a27d6708830160e631d4e40273
(base) matrix@matrix:~/DockerHome$ docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
m_ng                latest              3a451154fdd9        27 minutes ago      133MB
nginx               latest              ae2feff98a0c        11 days ago         133MB
ubuntu              latest              f643c72bc252        4 weeks ago         72.9MB

#重新加载镜像
(base) matrix@matrix:~/DockerHome$ docker load < backup.tar 
5137007d6bbb: Loading layer [==================================================>]   5.12kB/5.12kB
Loaded image: m_ng_dockerfile:latest
(base) matrix@matrix:~/DockerHome$ docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
m_ng_dockerfile     latest              5390dac3b964        16 minutes ago      133MB
m_ng                latest              3a451154fdd9        27 minutes ago      133MB
nginx               latest              ae2feff98a0c        11 days ago         133MB
ubuntu              latest              f643c72bc252        4 weeks ago         72.9MB
(base) matrix@matrix:~/DockerHome$ docker run -d -p 100:80 m_ng_dockerfile
fef54c714eade4cde345d34ef5670ab151de85bc8f663a79d0f80085d806d050

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值