centos7安装docker
检查是否安装过 docker :
yum list installed | grep docker
如果有安装了,如果重新安装需要先卸载:
使用命令 yum -y remove docker-ce.x86_64
卸载
删除存储目录:
# rm -rf /etc/docker
# rm -rf /run/docker
# rm -rf /var/lib/dockershim
# rm -rf /var/lib/docker
开始安装:
使用命令 uname-r 检查centOs的内核版本 docker要求centOs的内核版本在3.10 以上
安装必要的系统工具:
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
添加软件源信息 :
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
更新yum 缓存:
sudo yum makecache fast
安装docker-ce :
sudo yum -y install docker-ce
启动 docker 后台服务 :
sudo systemctl start docker
设置开机启动docker服务:
sudo systemctl enable docker
运行hello-world 镜像:
docker run hello-world
看到Hello from Docker! 字样说明已经安装成功。
一些常用的指令:docker version
查看版本docker info
查看基本信息
接下来安装镜像
查看一下镜像列表
docker search centos
下载centos镜像
docker pull centos
查看镜像列表
docker images
运行centos镜像
docker run -it centos:latest /bin/bash
参数解释:
run : 运行
-i :以交互模式运行容器,通常与 -t 同时使用
-t : 为容器重新分配一个伪输入终端,通常与 -i 同时使用
latest : 镜像版本
/bin/bash : 镜像的终端
告警:IPv4 forwarding is disabled. Networking will not work.
解决:开启网络转发功能
方法1:
cat /proc/sys/net/ipv4/ip_forward 查看是否为1
echo 1 > /proc/sys/net/ipv4/ip_forward
方法2:
vim /etc/sysctl.conf
添加
net.ipv4.ip_forward = 1
保存退出后查看:
sysctl -p
cat /proc/sys/net/ipv4/ip_forward
[root@localhost ~]# docker run -it centos:latest /bin/bash
[root@df8906f5a898 /]#
说明已成功运行了。
查看下系统版本:
[root@42f11d0175a3 /]# cat /etc/redhat-release
CentOS Linux release 8.0.1905 (Core)
退出系统用exit
示例:在container中启动一个长久运行的进程,不断向stdin输出hello world。模拟一个后台运行的服务。
docker run -d centos:latest /bin/bash -c "while true; do echo hello world; sleep 1; done"
参数:
-d 后台运行容器,并返回容器ID;
-c 后面跟待完成的命令。
从容器中查看日志,查看输出的内容
语法: docker logs 容器name/ID
docker logs 69bec6b3d840
查看容器IDdocker ps
列出所有运行中的容器docker ps -a
查看所有容器
结束运行的容器进程
docker ps
docker kill ID
docker kill 69bec6b3d840
启动、停止、重启 容器进程:
docker start ID
docker stop ID
docker restart ID
删除容器:(容器关闭的前提下)
docker rm ID
强制删除:
docker rm -f ID
docker镜像制作方法
两种方法:
方法1:docker commit # 保存container的当前状态到image后,然后生成对应的image。
方法2:docker build # 使用dockerfile文件自动化制作image。
方法1示例:制作一个apache的镜像
docker run -it centos:latest /bin/bash
yum install -y httpd
exit
docker ps -a
[root@localhost ~]# docker commit 2c9ae8cf8ba6 centos:apache
命名为centos:apache
查看下是否保存成功:
[root@localhost ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
centos apache 9017e4f2adb4 15 seconds ago 269MB
centos latest 0f3e07c0138f 2 months ago 220MB
hello-world latest fce289e99eb9 11 months ago 1.84kB
删除镜像:docker rmi centos:latest
或者 docker rmi 0f3e07c0138f
docker image 的发布
方法1:save image to tarball
保存image到tar包
语法:docker save -o 导出的镜像名.tar 本地镜像名:镜像标签
[root@localhost ~]# docker save -o docker-centos-latest.tar centos:latest
方法2: push image to docker hub
1.signup on docker hub & create repo 注册一个账号
https://hub.docker.com/
2.login to docker hub
# docker login -u 用户名 -p 密码 -e 123456789@qq.com
3.push image to docker hub # 上传镜像
#docker push centos:latest
4.pull image from docker hub # 下载镜像
#docker pull 用户名/镜像名:镜像标签
导入本地镜像
docker load -i docker-centos-latest.tar
container 容器端口映射
[root@localhost ~]# netstat -tunlp
docker run -it -d --name my-httpd -p 8088:80 centos:apache
[root@localhost ~]# netstat -tunlp
访问已经运行的容器:
docker ps
docker exec -it 0f3e07c0138f /bin/bash
版权声明:本博客所有文章除特殊声明外,均采用 CC BY-NC 4.0 许可协议。转载请注明出处 caijinbo的博客!