Docker安装 配置

参考 https://www.digitalocean.com/community/tutorials/how-to-install-and-use-docker-on-ubuntu-18-04
安装 Docker 及初始配置


注意 如果执行的docker命令的时候 所登录的用户不是root或不在docker组内,需要添加到docker组内,否则会异常

docker run hello-world
 docker: Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Post http://%2Fvar%2Frun%2Fdocker.sock/v1.40/containers/create: dial unix /var/run/docker.sock: connect: permission denied.
 See 'docker run --help'.

有的报

docker: Cannot connect to the Docker daemon. Is the docker daemon running on this host?.
 See 'docker run --help'.

解决办法:
参考https://www.digitalocean.com/community/tutorials/how-to-install-and-use-docker-on-ubuntu-18-04
的第二步
   执行 
sudo usermod -aG docker tieress

   执行 
su tieress
  然后要输入密码
tieress@123

  接下来执行
  

id -nG
查看到
    
tieress sudo docker

   好了 添加上了。
   如果需要添加其他用户 但是不是当前登录的用户 可以执行
  sudo usermod -aG docker 用户名

测试docker 请在有权限执行docker的用户登陆的状态下
   执行

docker run hello-world
便可以看到docker安装了hello-world这个image镜像并成功执行

  有需要查找的镜像可执行
 

 docker search 镜像关键词

  结果里面找到需要的镜像之后 可以通过执行
  

docker pull 镜像名

   的方式下载到server
   下载好了之后 执行
  docker run 镜像名

   便可以了 【如果没有下载,会自动搜索安装找到的第一个镜像】
   要查看下载了哪些镜像文件 可以执行
  docker images


测试开启运行一个容器
   执行

docker run -it ubuntu
  -it是指进入到容器内部interactive的terminal控制台 【如果已经
   启动的可以
docker start -i 4236201d32f7
-i后面是 容器id 这样进入控制台】

  执行完上述命令后 控制台会变成
   root@4236201d32f7:/ 这样 @后面是容器的id  如果要删除这个容器的时候 可以通过这个ID来定位

  注意 此时你已经是root用户了 即使你在宿主机【服务器】里是通过tieress登陆的

  可以在不使用sudo的情况下执行命令,如执行:

  apt update

   或者执行下面的命令安装node.js
  apt install nodejs

   安装完nodejs可以通过执行
 
 node -v
验证安装版本
   然后执行
  exit
退出控制台 回到宿主机【服务器】控制台


要管理Docker容器
   执行

docker ps
查看活动中的容器
   执行
docker ps -a
查看全部容器【包括非活动状态中的容器】

  -a, --all             Show all containers (default shows just running)
   -f, --filter filter   Filter output based on conditions provided
       --format string   Pretty-print containers using a Go template
   -n, --last int        Show n last created containers (includes all states) (default -1)
   -l, --latest          Show the latest created container (includes all states)
       --no-trunc        Don't truncate output
   -q, --quiet           Only display numeric IDs
   -s, --size            Display total file sizes

  执行

docker start 容器ID
来启动对应ID的容器
   如
docker start 4236201d32f7

  执行

docker stop 容器ID/容器名
来停止对应的容器
   如执行
docker stop interesting_shaw


   当确定不需要某个容器的时候,可以执行

 docker rm 容器ID/容器名
来移除对应的容器

在容器中 提交对某Docker镜像的更改
  启动了一个Docker镜像后,可以像在虚拟机中一样执行创建,修改,删除文件动作
  所有的更改会且仅会对应用到该容器中。可以启动也可以停止它,一旦通过执行 docker rm
  命令删除它之后,所有的更改都会丢失。

我们在这个容器【类似虚拟机】中所做的修改如果有价值,可以通过另存为一个新的镜像的方式保存下来。
  前面我们对从repository上下载下来的ubuntu镜像做了一下编辑【安装了一个Node.js】 那么这个容器配置
  就与原始的repository上的不一样了,如果我们以后需要这样的容器,我们可以通过执行提交来保存一个
  新的镜像以后使用

执行

docker commit -m "i've added node.js to this container/image" -a "tieress owner li an" 4236201d32f7 hello/test_ubuntu_add_nodejs

   -m 后面就是附注 m就是message的意思
   -a 后面就是作者名 -a就是author的意思
   作者后面就是 container的id
   然后是DockerHub的用户名/你给这个镜像取得名字
   执行完后 这个image会保存在本地

  执行

docker images
查看之
  REPOSITORY                     TAG                 IMAGE ID            CREATED             SIZE
   hello/test_ubuntu_add_nodejs   latest              88b034c80733        3 minutes ago       163MB
   ubuntu                         latest              adafef2e596e        3 days ago          73.9MB
   hello-world                    latest              bf756fb1ae65        6 months ago        13.3kB

  看到没有 size比原始的大了

  这种方式类似于搞了一个虚拟机快照

  不过也可以通过Dockerfile的方式来构建image Dockerfile其实就是类似于.bat文件这种【shell脚本】
   也是包含了很多指令,运行之就会去对应安装下载什么,配置什么,执行其他的操作之类的


提交本地镜像到DockerHub【或者其他的仓库】,用来分享也好,自己以后用也好。
   对于需要高自己的Docker registry的可以看 https://www.digitalocean.com/community/tutorials/how-to-set-up-a-private-docker-registry-on-ubuntu-14-04
  
   执行

docker login -u 用户名
登录Dockerhub 【后面会要求输入密码所以请注册一个】

    注意:如果你的Docker registry的用户名与创建的镜像所附的用户名是不一样的 那需附注一下
     执行

 docker tag 本地镜像用户名/本地镜像名 docker-registry用户名/镜像名

     如
docker tag sammy/ubuntu-nodejs docker-registry-username/ubuntu-nodejs

   提交执行
    
docker push hello/test_ubuntu_add_nodejs

   提交完成后可以在Dockerhub中看到
   以后可以执行
  
docker pull hello/test_ubuntu_add_nodejs
方式下载这个镜像了

posted @ 2020-07-11 02:50  dzkjz  阅读(168)  评论(0编辑  收藏  举报