-
清理安装包:
yum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \ docker-logrotate \ docker-selinux \ docker-engine-selinux \ docker-engine
-
安装依赖包:
yum install -y yum-utils device-mapper-persistent-data lvm2
-
添加镜像源:
使用阿里源
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo yum makecache
-
安装CE docker社区版本:
yum -y install docker-ce
-
启动服务验证
systemctl start docker docker run hello-world # 没有helloworld镜像,会下载该镜像并启动
启动如果失败
在系统日志message中查看日志:
Aug 10 03:02:21 docker1 dockerd: time="2019-08-10T03:02:21.577011955-04:00" level=info msg="Error while creating filesystem xfs on device docker-253:1-69296955-base: exit status 1" storage-driver=devicemapper
Aug 10 03:02:21 docker1 dockerd: time="2019-08-10T03:02:21.577027167-04:00" level=error msg="[graphdriver] prior storage driver devicemapper failed: exit status 1"
Aug 10 03:02:21 docker1 dockerd: failed to start daemon: error initializing graphdriver: exit status 1
Aug 10 03:02:21 docker1 systemd: docker.service: main process exited, code=exited, status=1/FAILURE
Aug 10 03:02:21 docker1 systemd: Failed to start Docker Application Container Engine.
需要升级xfs版本:
yum update xfsprogs
修改镜像仓库源:
新建文件: /etc/docker/daemon.json
{
"registry-mirrors": ["http://hub-mirror.c.163.com"]
}
检查:
docker system info
Registry: https://index.docker.io/v1/
Labels:
Experimental: false
Insecure Registries:
127.0.0.0/8
Registry Mirrors:
http://hub-mirror.c.163.com/
Live Restore Enabled: false
search 镜像:
docker search httpd
docker ps
docker image ls
[root@docker1 docker]# docker image ls
REPOSITORY TAG IMAGE ID CREATED SIZE
hello-world latest fce289e99eb9 7 months ago 1.84kB
docker pull 获取镜像:
[root@docker1 docker]# docker pull centos/httpd
Using default tag: latest
latest: Pulling from centos/httpd
a02a4930cb5d: Pulling fs layer
628eaef4a9e0: Pulling fs layer
20c0ca1c0cd5: Download complete
30cf2fb1a57e: Download complete
依据镜像启动容器:
docker container run -it xxxx /bin/bash
查看运行的容器:
docker container ls
查看所有的容器 加上-a:
docker container ls -a
[root@docker1 ~]# docker container ls -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
7e601c101259 hello-world "/hello" 2 hours ago Exited (0) 2 hours ago optimistic_jang
登录容器:
docker container exec -it xxxx bash
停止容器:
docker container stop xxx
删除容器
docker container rm 7e601c101259
[root@docker1 ~]# docker container rm 7e601c101259
7e601c101259
[root@docker1 ~]#
[root@docker1 ~]# docker container ls -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
实验:
启动一个apache 应用,并能够通过宿主机的ip进行访问:
docker container run -d --name mweb --publish 8080:80 centos/httpd
使用镜像httpd启动一个web服务, 名称为mweb 并且将容器内的80端口映射为宿主机的8080端口, 这样就可以使用宿主机的8080端口访问应用了
[root@docker1 docker]# docker image list
REPOSITORY TAG IMAGE ID CREATED SIZE
hello-world latest fce289e99eb9 7 months ago 1.84kB
centos/httpd latest 2cc07fbb5000 7 months ago 258MB
[root@docker1 docker]# docker container run -d --name mweb --publish 8080:80 centos/httpd
1fe7d3e5050214224a8e14084e8951b4beab972e4a935745273099b78d93c532
[root@docker1 docker]#
[root@docker1 docker]#
[root@docker1 docker]#
[root@docker1 docker]# docker container ls
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
1fe7d3e50502 centos/httpd "/run-httpd.sh" 13 seconds ago Up 11 seconds 0.0.0.0:8080->80/tcp mweb
[root@docker1 docker]#
打开端口验证