docker 学习
Explore Docker’s Container Image Repository | Docker Hub
官方文档:在 CentOS 上安装 Docker 引擎 |Docker 文档
centos7安装Docker
参考
Centos7下安装Docker(详细安装教程)_centos7安装docker-CSDN博客
1,root账户登录,查看内核版本如下
[root@localhost ~]# uname -a Linux localhost.localdomain 3.10.0-957.el7.x86_64 #1 SMP Thu Nov 8 23:39:32 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
|
2、2,把yum包更新到最新(温馨提示:新环境或测试环境可随意操作,生产环境酌情慎重更新)
正常不需要这步,不要更新,会直接更新到Centos8的yum,那玩意已经停止更新了,你还要改配置 [root@localhost ~]# yum update 已加载插件:fastestmirror Loading mirror speeds from cached hostfile * base: centos.ustc.edu.cn * extras: mirrors.aliyun.com * updates: mirrors.cn99.com base | 3.6 kB 00:00:00 extras | 3.4 kB 00:00:00 updates | 3.4 kB 00:00:00 正在解决依赖关系 --> 正在检查事务 ---> 软件包 NetworkManager.x86_64.1.1.12.0-6.el7 将被 升级 ---> 软件包 NetworkManager.x86_64.1.1.12.0-10.el7_6 将被 更新
|
3,安装需要的软件包, yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖的
[root@localhost ~]# yum install -y yum-utils device-mapper-persistent-data lvm2 已加载插件:fastestmirror Loading mirror speeds from cached hostfile
* base: centos.ustc.edu.cn * extras: mirrors.aliyun.com * updates: mirrors.cn99.com 软件包 device-mapper-persistent-data-0.7.3-3.el7.x86_64 已安装并且是最新版本 软件包 7:lvm2-2.02.180-10.el7_6.8.x86_64 已安装并且是最新版本 正在解决依赖关系 --> 正在检查事务 ---> 软件包 yum-utils.noarch.0.1.1.31-50.el7 将被 安装 --> 正在处理依赖关系 python-kitchen,它被软件包 yum-utils-1.1.31-50.el7.noarch 需要 ... ...
|
4,设置yum源(选择其中一个)
yum-config-manager –add-repo http://download.docker.com/linux/centos/docker-ce.repo(中央仓库)
yum-config-manager –add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo(阿里仓库)
[root@localhost ~]# yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo 已加载插件:fastestmirror adding repo from: https://download.docker.com/linux/centos/docker-ce.repo grabbing file https://download.docker.com/linux/centos/docker-ce.repo to /etc/yum.repos.d/docker-ce.repo repo saved to /etc/yum.repos.d/docker-ce.repo
|
5,可以查看所有仓库中所有docker版本,并选择特定版本安装
[root@localhost ~]# yum list docker-ce --showduplicates | sort -r 已加载插件:fastestmirror 可安装的软件包
* updates: mirrors.cn99.com Loading mirror speeds from cached hostfile * extras: mirrors.aliyun.com docker-ce.x86_64 3:19.03.2-3.el7 docker-ce-stable docker-ce.x86_64 3:19.03.1-3.el7 docker-ce-stable docker-ce.x86_64 3:19.03.0-3.el7 docker-ce-stable docker-ce.x86_64 3:18.09.8-3.el7 docker-ce-stable docker-ce.x86_64 3:18.09.7-3.el7 docker-ce-stable docker-ce.x86_64 3:18.09.6-3.el7 docker-ce-stable docker-ce.x86_64 3:18.09.5-3.el7 docker-ce-stable docker-ce.x86_64 3:18.09.4-3.el7 docker-ce-stable docker-ce.x86_64 3:18.09.3-3.el7 docker-ce-stable docker-ce.x86_64 3:18.09.2-3.el7 docker-ce-stable docker-ce.x86_64 3:18.09.1-3.el7 docker-ce-stable docker-ce.x86_64 3:18.09.0-3.el7 docker-ce-stable docker-ce.x86_64 18.06.3.ce-3.el7 docker-ce-stable docker-ce.x86_64 18.06.2.ce-3.el7 docker-ce-stable docker-ce.x86_64 18.06.1.ce-3.el7 docker-ce-stable docker-ce.x86_64 18.06.0.ce-3.el7 docker-ce-stable docker-ce.x86_64 18.03.1.ce-1.el7.centos docker-ce-stable docker-ce.x86_64 18.03.0.ce-1.el7.centos docker-ce-stable docker-ce.x86_64 17.12.1.ce-1.el7.centos docker-ce-stable
|
6,安装Docker,命令:yum install docker-ce-版本号,我选的是docker-ce-18.03.1.ce,如下
[root@localhost ~]# yum install docker-ce-18.03.1.ce 已加载插件:fastestmirror Loading mirror speeds from cached hostfile * base: centos.ustc.edu.cn * extras: mirrors.aliyun.com * updates: mirrors.cn99.com 正在解决依赖关系 --> 正在检查事务 ---> 软件包 docker-ce.x86_64.0.18.03.1.ce-1.el7.centos 将被 安装
|
7, 启动Docker,命令:systemctl start docker,然后加入开机启动,如下
[root@localhost ~]# systemctl start docker [root@localhost ~]# systemctl enable docker Created symlink from /etc/systemd/system/multi-user.target.wants/docker.service to /usr/lib/systemd/system/docker.service. [root@localhost ~]# docker version Client: Version: 18.03.1-ce API version: 1.37 Go version: go1.9.5 Git commit: 9ee9f40 Built: Thu Apr 26 07:20:16 2018 OS/Arch: linux/amd64 Experimental: false Orchestrator: swarm Server: Engine: Version: 18.03.1-ce API version: 1.37 (minimum version 1.12) Go version: go1.9.5 Git commit: 9ee9f40 Built: Thu Apr 26 07:23:58 2018 OS/Arch: linux/amd64 Experimental: false
|
8、doctor命令
docker ps 查看当前正在运行的容器
docker ps -a 查看所有容器的状态
docker start/stop id/name 启动/停止某个容器
docker exec -ti id 启动一个伪终端以交互式的方式进入某个容器(使用exit退出后容器不停止运行)
docker images 查看本地镜像
docker rm id/name 删除某个容器
docker rmi id/name 删除某个镜像
docker run --name test -ti ubuntu /bin/bash 复制ubuntu容器并且重命名为test且运行,然后以伪终端交互式方式进入容器,运行bash
docker build -t soar/centos:7.1 . 通过当前目录下的Dockerfile创建一个名为soar/centos:7.1的镜像
docker run -d -p 2222:22 --name test soar/centos:7.1 以镜像soar/centos:7.1创建名为test的容器,并以后台模式运行,并做端口映射到宿主机2222端口,P参数重启容器宿主机端口会发生改变
|
docker images 仓库搜索
Docker Machine | 菜鸟教程 (runoob.com)
(43条消息) docker出现Error response from daemon: driver failed programming external connectivity on endpoint解决方法_码农研究僧的博客-CSDN博客_utf-8
基于 Docker 安装 Nginx,启动运行,外网访问,映射配置文件 - 简书 (jianshu.com)
(43条消息) 如何关闭docker容器里的进程_stay_foolish12的博客-CSDN博客_docker 关闭进程
(37条消息) 【Docker】Docker服务外部无法访问_MAXLZ的博客-CSDN博客_docker容器外部无法访问
(37条消息) Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?_凌风少年z的博客-CSDN博客
(43条消息) CentOs安装Docker,docker machine_走_心的博客-CSDN博客
docker容器启动成功外界却无法访问_docker_清人-DevPress官方社区 (csdn.net)
(42条消息) 解决:Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?_番茄牛腩不吃番茄的博客-CSDN博客
(44条消息) Docker容器端口映射无法访问的问题排查_shadow_zed的博客-CSDN博客_docker端口映射访问不到
Docker top 命令 | 菜鸟教程 (runoob.com)
Docker容器运行/后台运行、终止、删除、 - 简书 (jianshu.com)
docker 启动 systemctl start docker
docker 状态 systemctl status docker
开机自启动docker systemctl enable docker
(46条消息) 退出Docker后保持继续运行的解决办法 docker结束但不退出 docker退出后继续运行系统__刘文凯_的博客-CSDN博客_docker退出容器保持运行
输入【pgrep 进程名称】即可获取到pid列表。( 例如:pgrep java)
使用【ps】命令查看进程pid。( 例如:ps -ef|grep java
-e:显示所有进程。
-f :做一个更为完整的输出。
| 管道
grep xxxx 筛选出xxxx的进程。)
使用【top】命令查看进程pid。
在命令行输入:top 按下回车键即可。
【ctrl+c】是退出top界面。
通过【ls /proc】命令查看进程pid。
Linux在启动一个进程时,系统会在/proc下创建一个以PID命名的文件 夹。
每一个数字文件夹就是对应的一个进程pid。
查出需要关闭的进程ID后,使用命令【pkill -9 进程ID】即可删除关闭进程。
例如:pkill -9 29944
Docker 删除 images - VipSoft - 博客园 (cnblogs.com)
注意:想要删除镜像,必须要让有用到他的容器先停止,然后再删除,删除完之后确保没有其它容器在用之后,才能去删除镜像
docker images 查看镜像
docker ps -a 查看所有容器 看看要删除哪个镜像,然后去容器有谁在用这个
docker stop 容器的id
docker rm 容器的id
最后 docker rmi 镜像的id
Docker top 查看容器进程 - Docker 基础教程 - 简单教程,简单编程 (twle.cn)
基于 Docker 安装 Nginx,启动运行,外网访问,映射配置文件 - 简书 (jianshu.com)
CentOS docker 搭建nginx访问宿主机端口报错curl: (56) Recv failure: Connection reset by peer - 简书 (jianshu.com)
[Docker外部访问容器_w3cschool](https://www.w3cschool.cn/reqsgr/is3f2ozt.html#:~:text=Docker外部访问容器 2018-08-04 17%3A56 更新 容器中可以运行一些网络应用,要让外部也可以访问这些应用,可以通过 -P 或,-p 参数来指定端口映射。 当使用 -P 标记时,Docker 会随机映射一个 49000~49900 的端口到内部容器开放的网络端口。)
docker 端口暴露问题
docker run -d –name nginx22 -p 666:80 nginx
举例 nginx 默认端口是 80 将本机的666端口 映射到 80 端口
docker ps nginx22
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
cab9d0fb5511 nginx “/docker-entrypoin…” 27 minutes ago Up 9 minutes 0.0.0.0:666->80/tcp nginx22
容器中可以运行一些网络应用,要让外部也可以访问这些应用,可以通过 -P 或 -p 参数来指定端口映射。
当使用 -P 标记时,Docker 会随机映射一个 49000~49900 的端口到内部容器开放的网络端口。
使用 docker ps 可以看到,本地主机的 666 被映射到了容器的 80 端口。此时访问本机的666 端口即可访问容器内 web 应用提供的界面。
但是腾讯云阿里云的服务器需要先通过安全组,也就是在服务器的界面上添加一个666可以让人访问的端口,这样子就可以访问了
服务器的ip是 1.12.48.115
外部访问则 http://1.12.48.115:666/
成功访问到
docker 启动运行 tomcat
[Docker安装 Tomcat - 腾讯云开发者社区-腾讯云 (tencent.com)](https://cloud.tencent.com/developer/article/1907376#:~:text=docker pull,tomcat(若不在tomcat后面指定版本默认是最新版本,若需要指定版本则例如:docker pull tomcat%3A9.0))
(46条消息) 解决docker内tomcat容器启动成功后,无法访问tomcat页面(404)问题_bigpenga的博客-CSDN博客
(47条消息) docker部署mysql 实现远程连接_眼沉沉的博客-CSDN博客_docker 连接mysql
(47条消息) Docker配置MySQL容器+远程连接(全流程)_卷、就硬卷的博客-CSDN博客_mysql容器远程访问
docker安装mysql - 腾讯云开发者社区-腾讯云 (tencent.com)