docker镜像和容器的安装与使用

放肆的年华 提交于 2020-02-27 01:35:26

docker的安装

环境准备

配置yum源并安装docker
服务器ip  192.168.1.31
关闭防火墙

步骤一:docker镜像
1)配置IP

[root@docker1 ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0
# Generated by dracut initrd
DEVICE="eth0"
ONBOOT="yes"
IPV6INIT="no"
IPV4_FAILURE_FATAL="no"
NM_CONTROLLED="no"
TYPE="Ethernet"
BOOTPROTO="static"
IPADDR="192.168.1.31"
PREFIX=24
GATEWAY=192.168.1.254

2)安装docker并设置开机自启动

[root@docker1 ~]# yum -y install docker
[root@docker1 ~]# systemctl restart docker
[root@docker1 ~]# systemctl enable docker

镜像的基本使用

1)下载镜像

[root@docker1 ~]# docker pull docker.io/busybox
[root@docker1 bulid]# docker pull docker.io/busybox
Using default tag: latest

2)上传镜像

[root@docker1 ~]# docker push docker.io/busybox

3)查看镜像

[root@docker1 ~]# docker images

4)查找busybox镜像

[root@docker1 ~]# docker search docker.io/busybox

5)导出busybox镜像为busybox.tar

[root@docker1 ~]# docker save docker.io/busybox:latest -o busybox.tar
[root@docker1 ~]# ls
busybox.tar  

6)导入镜像

[root@docker1 ~]# scp nginx.tar root@192.168.1.32:/root
[root@docker1 ~]# ls
nginx.tar  
[root@docker1 ~]# docker load -i nginx.tar
[root@docker1 ~]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
docker.io/nginx     latest              42b4762643dc        4 weeks ago         109.2 M             e1ddd7948a1c        4 weeks ago      1.163 MB

7)删除镜像

[root@docker1 docker]# docker rmi  docker.io/nginx  #默认是标签是latest

步骤二:一次性导入多个镜像

[root@docker1 docker]# ls
centos.tar  nginx.tar  redis.tar  registry.tar  ubuntu.tar
[root@docker1 docker]# for i in * ; do docker load -i $i; done

步骤三:启动镜像

[root@docker1 docker_images]# docker run -it docker.io/centos /bin/bash
#可以看到主机名已经改变,说明已经在容器中
[root@7a652fc72a9f /]# ls /
anaconda-post.log  bin  dev  etc  home  lib  lib64  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var

在容器中配置yum源并装软件

[root@7a652fc72a9f yum.repos.d]# rm -rf C*
[root@7a652fc72a9f yum.repos.d]#vi dvd.repo    //在容器里面配置一个yum源
[local]
name=local
baseurl=ftp://192.168.1.254/system
enable=1
gpgcheck=0
[root@7a652fc72a9f yum.repos.d]# yum -y install net-tools  //安装软件
[root@7a652fc72a9f yum.repos.d]# exit
exit

镜像和容器的常用指令

1)查看后台运行的容器

#启动nginx的镜像
[root@docker1 docker]# docker run -d docker.io/nginx
#查看后台运行的容器
[root@docker1 docker]# docker ps  
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS               NAMES
81458156f6e8        docker.io/nginx               "nginx -g 'daemon off"   9 seconds ago       Up 8 seconds        80/tcp              pedantic_goldberg  

2)查看容器的ID

[root@docker1 docker]# docker ps -q
81458156f6e8        

3)显示所有容器(包括未启动的容器)

[root@docker1 docker]# docker ps -a

4)显示所有的容器ID

[root@docker1 docker]# docker ps -qa
81458156f6e8
3656f1978967

5)查看镜像的历史,也就是制作过程

 [root@docker1 docker_images]# docker history docker.io/centos

6)删除镜像,启动容器时无法删除镜像,必须先删除容器后删除镜像

[root@docker1 docker]# docker rmi nginx  //nginx为镜像名
Error response from daemon: conflict: unable to remove repository reference "nginx" (must force) - container 81458156f6e8 is using its referenced image 42b4762643dc
#容器ID只要唯一就不需要完整ID 
[root@docker1 docker]# docker stop 81
81 
[root@docker1 docker]# docker rm 81
81
[root@docker2 ~]# docker rmi docker.io/nginx   //删除nginx镜像

7)修改镜像名称和标签,默认标签为latest

[root@docker1 docker_images]# docker tag  docker.io/centos:latest docker.io/cen:v1
[root@docker2 ~]# docker images

8)查看镜像底层信息

[root@docker1 docker_images]#docker inspect docker.io/centos

容器命令

注意:容器id只要到了唯一标识的地方即可,无需完整ID
1)关闭容器

[root@docker1 docker]# docker stop 0f   #0f为容器ID
0f

2)启动容器

[root@docker1 docker]# docker start 0f
0f

3)重启容器

[root@docker1 docker]# docker restart 0f
of

4)删除容器
删除容器确保属于关闭的状态

[root@docker1 docker]# docker rm 0f 

5)连接容器attach|exec

[root@docker1 docker]# docker attach  0f
[root@docker1 docker]#  docker exec -it 0f /bin/bash
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!