文章目录
系统环境及软件
系统环境
主机名 | 系统 | IP地址 | 作用 |
---|---|---|---|
vmhost | rhel7.5 | 192.168.27.7/24 | 真机提供虚拟机node1进行docker学习 |
node1 | rhel7.5 | 192.168.27.11/24 | 虚拟机进行docker学习 |
软件
Docker软件版本区分:
- Docker-CE指Docker社区版,由社区维护和提供技术支持,为免费版本,适合个人开发人员和小团队使用。
- Docker-EE指Docker企业版,为收费版本,由售后团队和技术团队提供技术支持,专为企业开发和IT团队而设计。Docker-EE增加一些额外功能,更重要的是提供了更安全的保障。
docker-ce软件及其依赖性软件:
- docker-ce-18.09.6-3.el7.x86_64.rpm
- docker-ce-cli-18.09.6-3.el7.x86_64.rpm
- containerd.io-1.2.5-3.1.el7.x86_64.rpm
- container-selinux-2.21-1.el7.noarch.rpm
测试镜像:
game2048.tar(网页版2048游戏镜像)
ubuntu.tar
docker安装
- 确认安装包
[root@node1 opt]# ls
docker-ce-18.09.6-3.el7.x86_64.rpm
containerd.io-1.2.5-3.1.el7.x86_64.rpm
docker-ce-cli-18.09.6-3.el7.x86_64.rpm
container-selinux-2.21-1.el7.noarch.rpm
- 安装
[root@node1 opt]# yum install -y *
- 启动服务
[root@node1 opt]# systemctl start docker.service
- 查看docker信息及系统信息
[root@node1 opt]# docker version
Client:
Version: 18.09.6
API version: 1.39
Go version: go1.10.8
Git commit: 481bc77156
Built: Sat May 4 02:34:58 2019
OS/Arch: linux/amd64
Experimental: false
Server: Docker Engine - Community
Engine:
Version: 18.09.6
API version: 1.39 (minimum version 1.12)
Go version: go1.10.8
Git commit: 481bc77
Built: Sat May 4 02:02:43 2019
OS/Arch: linux/amd64
Experimental: false
[root@node1 opt]# docker info
Containers: 0
Running: 0
Paused: 0
Stopped: 0
Images: 0
Server Version: 18.09.6
Storage Driver: overlay2
Backing Filesystem: xfs
Supports d_type: true
Native Overlay Diff: true
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins:
Volume: local
Network: bridge host macvlan null overlay
Log: awslogs fluentd gcplogs gelf journald json-file local logentries splunk syslog
Swarm: inactive
Runtimes: runc
Default Runtime: runc
Init Binary: docker-init
containerd version: bb71b10fd8f58240ca47fbb579b9d1028eea7c84
runc version: 2b18fe1d885ee5083ef9f0838fee39b62d653e30
init version: fec3683
Security Options:
seccomp
Profile: default
Kernel Version: 3.10.0-862.el7.x86_64
Operating System: Red Hat Enterprise Linux Server 7.5 (Maipo)
OSType: linux
Architecture: x86_64
CPUs: 1
Total Memory: 991.7MiB
Name: node1
ID: FTWW:JDJK:FRGN:7I2C:HNSV:ASQ4:TEQZ:HYXQ:HNIB:AXTV:D67A:E3DJ
Docker Root Dir: /var/lib/docker
Debug Mode (client): false
Debug Mode (server): false
Registry: https://index.docker.io/v1/
Labels:
Experimental: false
Insecure Registries:
127.0.0.0/8
Live Restore Enabled: false
Product License: Community Engine
创建容器
创建2048游戏容器
- 上传镜像tar包
[root@node1 images]# ls
game2048.tar ubuntu.tar
- 加载镜像tar包,使用load命令
[root@node1 images]# docker load -i game2048.tar
#--input , -i : 指定导入的文件
011b303988d2: Loading layer 5.05MB/5.05MB
36e9226e74f8: Loading layer 51.46MB/51.46MB
192e9fad2abc: Loading layer 3.584kB/3.584kB
6d7504772167: Loading layer 4.608kB/4.608kB
88fca8ae768a: Loading layer 629.8kB/629.8kB
Loaded image: game2048:latest
- 查看镜像创建历史信息,在建立容器时会用到查看过的信息
[root@node1 images]# docker history game2048:latest
IMAGE CREATED CREATED BY SIZE COMMENT
19299002fdbe 3 years ago /bin/sh -c #(nop) CMD ["/bin/sh" "-c" "sed … 0B
<missing> 3 years ago /bin/sh -c #(nop) EXPOSE 80/tcp 0B
#使用tcp 80端口
<missing> 3 years ago /bin/sh -c #(nop) COPY dir:cb74e9c037a3d501c… 600kB
<missing> 3 years ago /bin/sh -c #(nop) MAINTAINER Golfen Guo <go… 0B
<missing> 3 years ago /bin/sh -c #(nop) CMD ["nginx" "-g" "daemon… 0B
#使用的nignx
<missing> 3 years ago /bin/sh -c #(nop) EXPOSE 443/tcp 80/tcp 0B
<missing> 3 years ago /bin/sh -c #(nop) COPY file:d15ceb73c6ea776c… 1.1kB
<missing> 3 years ago /bin/sh -c #(nop) COPY file:af94db45bb7e4b8f… 643B
<missing> 3 years ago /bin/sh -c GPG_KEYS=B0F4253373F8F6F510D42178… 50.1MB
<missing> 3 years ago /bin/sh -c #(nop) ENV NGINX_VERSION=1.11.7 0B
<missing> 3 years ago /bin/sh -c #(nop) MAINTAINER NGINX Docker M… 0B
<missing> 3 years ago /bin/sh -c #(nop) ADD file:7afbc23fda8b0b387… 4.8MB
- 根据查看过的信息,创建容器
[root@node1 images]# docker run -d -p 80:80 --name 2048_webgame game2048
ca574a1844acf75498f97f979588cd05fa0a895f0e9d436d8fa51b8149054267
#创建容器命令docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
#options:
# -d :后台运行容器,并返回容器ID;
# -p :端口映射 本机80:容器80
# --name :为容器指定一个名称 2048_webgame
[root@node1 images]# docker container ls
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
ca574a1844ac game2048 "/bin/sh -c 'sed -i …" 57 seconds ago Up 51 seconds 0.0.0.0:80->80/tcp, 443/tcp 2048_webgame
#0.0.0.0:80->80/tcp 本机端口80指向容器端口80
[root@node1 images]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
ca574a1844ac game2048 "/bin/sh -c 'sed -i …" About a minute ago Up About a minute 0.0.0.0:80->80/tcp, 443/tcp 2048_webgame
#使用docker container ls或者docker ps查看容器运行信息
[root@node1 images]# netstat -antlp
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 864/sshd
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 959/master
tcp 0 0 192.168.27.11:22 192.168.27.7:43582 ESTABLISHED 1167/sshd: root@pts
tcp 0 0 192.168.27.11:22 192.168.27.6:59862 ESTABLISHED 1423/sshd: root@not
tcp6 0 0 :::80 :::* LISTEN 12717/docker-proxy
#每创建一个带有网络的容器, 都会有一个docker-porxy进程管理端口转发
tcp6 0 0 :::22 :::* LISTEN 864/sshd
tcp6 0 0 ::1:25 :::* LISTEN 959/master
- 检查创建好的容器运行成果,应为容器
创建ubuntu容器,进行功能联系
创建镜像ubuntu,建立容器vm1,进入交互模式
#创建镜像ubuntu
[root@node1 images]# docker load -i ubuntu.tar
56abdd66ba31: Loading layer [==================================================>] 196.8MB/196.8MB
9468150a390c: Loading layer [==================================================>] 208.9kB/208.9kB
11083b444c90: Loading layer [==================================================>] 4.608kB/4.608kB
5f70bf18a086: Loading layer [==================================================>] 1.024kB/1.024kB
Loaded image: ubuntu:latest
[root@node1 images]# docker history ubuntu:latest
IMAGE CREATED CREATED BY SIZE COMMENT
07c86167cdc4 3 years ago /bin/sh -c #(nop) CMD ["/bin/bash"] 0B
<missing> 3 years ago /bin/sh -c sed -i 's/^#\s*\(deb.*universe\)$… 1.9kB
<missing> 3 years ago /bin/sh -c echo '#!/bin/sh' > /usr/sbin/poli… 195kB
<missing> 3 years ago /bin/sh -c #(nop) ADD file:b9504126dc5590898… 188MB
[root@node1 images]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
game2048 latest 19299002fdbe 3 years ago 55.5MB
ubuntu latest 07c86167cdc4 3 years ago 188MB
#容器建立成功,进入模式
[root@node1 images]# docker run -it --name vm1 ubuntu
root@90f9fe8d7f5d:/#
#创建容器命令docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
#options:
#-i, --interactive=false 打开STDIN,用于控制台交互
#-t, --tty=false 分配tty设备,该可以支持终端登录,默认为false
#
直接退出容器,停止容器运行,查看容器状态
#退出容器,停止容器
[root@node1 images]# docker run -it --name vm1 ubuntu
root@90f9fe8d7f5d:/#
root@90f9fe8d7f5d:/# exit
#查看容器状态exited,已退出
[root@node1 images]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
90f9fe8d7f5d ubuntu "/bin/bash" 38 seconds ago Exited (130) 10 seconds ago vm1
ca574a1844ac game2048 "/bin/sh -c 'sed -i …" 29 minutes ago Up 28 minutes 0.0.0.0:80->80/tcp, 443/tcp 2048_webgame
重启容器,重连接容器
#重启容器
[root@node1 images]# docker container start vm1
vm1
#查看容器状态UP,启动
[root@node1 images]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
90f9fe8d7f5d ubuntu "/bin/bash" About a minute ago Up 2 seconds vm1
ca574a1844ac game2048 "/bin/sh -c 'sed -i …" 29 minutes ago Up 29 minutes 0.0.0.0:80->80/tcp, 443/tcp 2048_webgame
#重新连接容器
[root@node1 images]# docker attach vm1
root@90f9fe8d7f5d:/#
仅退出连接状态,不停止容器
#ctrl+p+q 仅退出连接状态,不停止容器
[root@node1 images]# docker attach vm1
root@90f9fe8d7f5d:/#
root@90f9fe8d7f5d:/#
#查看容器状态,还是up
[root@node1 images]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
90f9fe8d7f5d ubuntu "/bin/bash" 22 minutes ago Up 20 minutes vm1
ca574a1844ac game2048 "/bin/sh -c 'sed -i …" About an hour ago Up About an hour 0.0.0.0:80->80/tcp, 443/tcp 2048_webgame
#重新连接容器
[root@node1 images]# docker attach vm1
root@90f9fe8d7f5d:/#
root@90f9fe8d7f5d:/#