Docker安装 推荐文章:Docker 容器入门 - 惨绿少年 - 博客园 (cnblogs.com)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 yum install -y yum-utils device-mapper-persistent-date lvm2 yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo yum install -y docker-ce docker -v
Docker镜像加速 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 mkdir -p /etc/dockertee /etc/docker/daemon.json <<-'EOF' { "registry-mirrors" : ["https://dwpobk77.mirror.aliyuncs.com" ] } EOF sudo systemctl daemon-reload sudo systemctl restart docker
Docker生命周期
Docker命令 镜像相关 搜索 1 2 3 4 5 6 7 8 9 10 11 12 13 14 [root@docker ~] NAME DESCRIPTION STARS OFFICIAL AUTOMATED nginx Official build of Nginx. 16597 [OK] bitnami/nginx Bitnami nginx Docker Image 121 [OK] ubuntu/nginx Nginx, a high-performance reverse proxy & we… 39 bitnami/nginx-ingress-controller Bitnami Docker Image for NGINX Ingress Contr… 17 [OK] rancher/nginx-ingress-controller 10 ibmcom/nginx-ingress-controller Docker Image for IBM Cloud Private-CE (Commu… 4 bitnami/nginx-ldap-auth-daemon 3 bitnami/nginx-exporter 2 circleci/nginx This image is for internal use 2
下载/拉取 1 2 3 4 5 6 7 8 9 10 11 12 13 14 docker pull 名称:版本 [root@docker ~] 1.21.6: Pulling from library/nginx c229119241af: Pull complete 2215908dc0a2: Pull complete 08c3cb2073f1: Pull complete 18f38162c0ce: Pull complete 10e2168f148a: Pull complete c4ffe9532b5f: Pull complete Digest: sha256:2275af0f20d71b293916f1958f8497f987b8d8fd8113df54635f2a5915002bf1 Status: Downloaded newer image for nginx:1.21.6 docker.io/library/nginx:1.21.6
镜像列表 1 2 3 [root@docker ~] REPOSITORY TAG IMAGE ID CREATED SIZE nginx 1.21.6 12766a6745ee 10 days ago 142MB
镜像标签 1 2 3 4 5 6 7 [root@docker ~] [root@docker ~] mynginx 1.21.6 12766a6745ee 10 days ago 142MB nginx 1.21.6 12766a6745ee 10 days ago 142MB
镜像删除 1 2 [root@docker ~] Untagged: mynginx:1.21.6
镜像导出 1 2 3 4 5 [root@docker ~] [root@docker ~] nginx-v1.21.6.tar
镜像导入 1 docker load < nginx-v1.21.6.tar
容器相关 创建容器 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 Docker run [options] image [command ] [arg] Option说明: -d 后台运行 -i 以交互模式运行容器,通常与-t同时使用 -t 为容器重新分配一个伪输出终端,通常与-i同时使用 --name 设置容器名字 --net 指定网络连接类型 --h 设置主机名称 --dns 指定容器的dns服务器,默认和宿主一致 -e 设置环境变量(**=”**”) -p 本地端口:容器端口 把容器的某个端口暴露到主机的某个端口 -v 本地目录:容器目录 把主机的某目录挂载到容器的目录里面实现文件系统的链接 --network 指定网络 --rm 容器关闭后自动删除 --restart=always no,默认策略,在容器退出时不重启容器. on-failure ,在容器非正常退出时(退出状态非0),才会重启容器 on-failure:3,在容器非正常退出时重启容器,最多重启3次 always ,在容器退出时总是重启容器. unless-stopped,在容器退出时总是重启容器,但是不考虑在Docker守护进程启动时就已经停止了的容器。 如果创建时未指定--restart=always ,可通过update命令设置 语法: docker update --restart=always 容器id 或名字
容器列表 使用命令:”docker ps”来查看已经启动的容器,如果有停止运行的容器可以添加’-a’参数来查看
1 2 3 [root@docker ~] CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 4cf61416ee67 nginx "/docker-entrypoint.…" 3 minutes ago Up 3 minutes 0.0.0.0:8080->80/tcp, :::8080->80/tcp nginx1
关闭容器 启动容器
重启容器 1 2 docker restart 容器ID|容器名称
容器删除 使用命令:”docker rm {容器ID|容器名称}”来删除已经关闭的容器,如果容器在运行中想要强制删除可以加’-f’参数进行强制删除
容器日志
容器转镜像 1 2 3 4 5 6 7 8 [root@docker ~] sha256:05f5efa5b56fd3d9c6d17b74ee4a3e9866095ac8cc681879dda21b9b7a968859 [root@docker ~] REPOSITORY TAG IMAGE ID CREATED SIZE myweb v1.0 05f5efa5b56f 4 seconds ago 142MB nginx latest fa5269854a5e 11 days ago 142MB hello-world latest feb5d9fea6a5 7 months ago 13.3kB
容器信息 1 docker inspect {容器ID|容器名称}
DockerFile 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 FROM 指定基础镜像 MAINTAINER 指定维护者 RUN 在命令前面加上RUN即可 ADD 添加宿主机的文件到容器内,多了个自动解压的功能 COPY 也是添加宿主机的文件到容器内,仅仅拷贝 WORKDIR 设置当前工作目录 VOLUME 设置卷,挂载主机目录 EXPOSE 指定对外的端口 CMD 指定容器启动后要干的事情
Docker网络 Docker网络是宿主机虚拟出来的,并不是真实存在的网络设备,外部网络无法直接访问到容器,从而实现网络的隔离。
网络模式 Host 启动容器时使用host模式,那这个容器将不会获得一个独立的ip,而是和宿主机共用一个ip,容器将不会虚拟出自己的网卡,而是使用宿主机的ip和端口,但是容器其他方面,比如文件系统,进程系统都是独立。
Container 启动容器时使用Container使用的时候需要指定一个容器id或者容器名称,这个模式会和指定的容器共享同一个ip,和host一样除了ip是共享对应容器的ip之外,容器的其他方面,比如文件系统,进程系统都是独立的。
None 启动容器时使用None,Docker容器将不会生成网卡,也就是说容器会没有网卡,ip,路由等信息。需要我们自己来添加。这种网络情况只会又一个lo回环网卡。
bridge 当docker服务启动的时候,会在主机上创建一个docker0的虚拟网卡,此主机默认启动的容器都会链接到这个虚拟网卡上。类似与vmwar 的一个虚拟网络。