Focus On Oracle

Installing, Backup & Recovery, Performance Tuning,
Troubleshooting, Upgrading, Patching

Oracle Engineered System


当前位置: 首页 » 技术文章 » Oracle

在Oracle Enterprise Linux 6.8上使用Docker

Docker Engine和Docker Hub的关系图


简单地可以理解为,从docker hub上获取镜像文件,然后创建一个基于镜像的容器,其中镜像文件可以为应用程序,可以为数据库,中间件,当然也可以为操作系统


docker命令列表

[ohsdba@ovm ~]$ docker
Usage: docker [OPTIONS] COMMAND [arg...]
       docker [ --help | -v | --version ]

A self-sufficient runtime for containers.
Options:
  --config=~/.docker              Location of client config files
  -D, --debug                     Enable debug mode
  -H, --host=[]                   Daemon socket(s) to connect to
  -h, --help                      Print usage
  -l, --log-level=info            Set the logging level
  --tls                           Use TLS; implied by --tlsverify
  --tlscacert=~/.docker/ca.pem    Trust certs signed only by this CA
  --tlscert=~/.docker/cert.pem    Path to TLS certificate file
  --tlskey=~/.docker/key.pem      Path to TLS key file
  --tlsverify                     Use TLS and verify the remote
  -v, --version                   Print version information and quit

Commands:
    attach    Attach to a running container
    build     Build an image from a Dockerfile
    commit    Create a new image from a container's changes
    cp        Copy files/folders between a container and the local filesystem
    create    Create a new container
    diff      Inspect changes on a container's filesystem
    events    Get real time events from the server
    exec      Run a command in a running container
    export    Export a container's filesystem as a tar archive
    history   Show the history of an image
    images    List images
    import    Import the contents from a tarball to create a filesystem image
    info      Display system-wide information
    inspect   Return low-level information on a container, image or task
    kill      Kill one or more running container
    load      Load an image from a tar archive or STDIN
    login     Log in to a Docker registry.
    logout    Log out from a Docker registry.
    logs      Fetch the logs of a container
    network   Manage Docker networks
    node      Manage Docker Swarm nodes
    pause     Pause all processes within one or more containers
    port      List port mappings or a specific mapping for the container
    ps        List containers
    pull      Pull an image or a repository from a registry
    push      Push an image or a repository to a registry
    rename    Rename a container
    restart   Restart a container
    rm        Remove one or more containers
    rmi       Remove one or more images
    run       Run a command in a new container
    save      Save one or more images to a tar archive (streamed to STDOUT by default)
    search    Search the Docker Hub for images
    service   Manage Docker services
    start     Start one or more stopped containers
    stats     Display a live stream of container(s) resource usage statistics
    stop      Stop one or more running containers
    swarm     Manage Docker Swarm
    tag       Tag an image into a repository
    top       Display the running processes of a container
    unpause   Unpause all processes within one or more containers
    update    Update configuration of one or more containers
    version   Show the Docker version information
    volume    Manage Docker volumes
    wait      Block until a container stops, then print its exit code

Run 'docker COMMAND --help' for more information on a command.
[ohsdba@ovm ~]$

 

docker命令分类

容器相关操作
    docker create # 创建一个容器但是不启动它
    docker run # 创建并启动一个容器
    docker stop # 停止容器运行,发送信号SIGTERM
    docker start # 启动一个停止状态的容器
    docker restart # 重启一个容器
    docker rm # 删除一个容器
    docker kill # 发送信号给容器,默认SIGKILL
    docker attach # 连接(进入)到一个正在运行的容器
    docker wait # 阻塞到一个容器,直到容器停止运行

获取容器相关信息
    docker ps # 显示状态为运行(Up)的容器
    docker ps -a # 显示所有容器,包括运行中(Up)的和退出的(Exited)
    docker inspect # 深入容器内部获取容器所有信息
    docker logs # 查看容器的日志(stdout/stderr)
    docker events # 得到docker服务器的实时的事件
    docker port # 显示容器的端口映射
    docker top # 显示容器的进程信息
    docker diff # 显示容器文件系统的前后变化

导出容器
    docker cp # 从容器里向外拷贝文件或目录
    docker export # 将容器整个文件系统导出为一个tar包,不带layers、tag等信息

执行
    docker exec # 在容器里执行一个命令,可以执行bash进入交互式

镜像操作
    docker images # 显示本地所有的镜像列表
    docker import # 从一个tar包创建一个镜像,往往和export结合使用
    docker build # 使用Dockerfile创建镜像(推荐)
    docker commit # 从容器创建镜像
    docker rmi # 删除一个镜像
    docker load # 从一个tar包创建一个镜像,和save配合使用
    docker save # 将一个镜像保存为一个tar包,带layers和tag信息
    docker history # 显示生成一个镜像的历史命令
    docker tag # 为镜像起一个别名

镜像仓库(registry)操作
    docker login # 登录到一个registry
    docker search # 从registry仓库搜索镜像
    docker pull # 从仓库下载镜像到本地
    docker push # 将一个镜像push到registry仓库中

获取Container IP地址(Container状态必须是Up)
docker inspect id | grep IPAddress | cut -d '"' -f 4

获取端口映射
docker inspect -f '{{range $p, $conf := .NetworkSettings.Ports}} {{$p}} -> {{(index $conf 0).HostPort}} {{end}}' id

获取环境变量
docker exec container_id env

Dockerfile
Dockerfile是docker构建镜像的基础,也是docker区别于其他容器的重要特征,正是有了Dockerfile,docker的自动化和可移植性才成为可能。


一步步地部署自己定制的Docker Images

获取oraclelinux镜像
[ohsdba@ovm ~]$ docker pull oraclelinux:6
6: Pulling from library/oraclelinux
25ffe460c306: Pull complete
Digest: sha256:60cef09d6f787ab528050f0cf9133094b5dfaad4c596b010951debbc0881d08f
Status: Downloaded newer image for oraclelinux:6
[ohsdba@ovm ~]$
[ohsdba@ovm ~]$ docker pull mysql/mysql-server
Using default tag: latest
latest: Pulling from mysql/mysql-server
10ec637c060c: Pull complete
22caa4e2bf29: Pull complete
91fa2b4da208: Pull complete
698e38e28dfb: Pull complete
Digest: sha256:d0fed24f72475f7f6f6c27c55f3ef4be05946a277cc00519a14d772d3154f14b
Status: Downloaded newer image for mysql/mysql-server:latest
[ohsdba@ovm ~]$
查看镜像
[ohsdba@ovm ~]$ docker images
REPOSITORY           TAG                 IMAGE ID            CREATED             SIZE
mysql/mysql-server   latest              43d4a6c26521        14 hours ago        369.1 MB
oraclelinux          6                   175adfa05e40        10 weeks ago        223.1 MB
[ohsdba@ovm ~]$
运行容器

-i 交互式运行

-d 后台运行

[ohsdba@ovm ~]$ docker run -i -t --name guest oraclelinux:6 /bin/bash
[root@4001fefe9b7a /]# ls
bin  boot  dev  etc  home  lib  lib64  media  mnt  opt  proc  root  sbin  selinux  srv  sys  tmp  usr  var
[root@4001fefe9b7a /]#
查看容器
[ohsdba@ovm ~]$ docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
4001fefe9b7a        oraclelinux:6       "/bin/bash"         9 minutes ago       Up 9 minutes                            guest
[ohsdba@ovm ~]$ 
在容器guest上使用yum在安装httpd和perl
[root@4001fefe9b7a ~]# yum install -y httpd perl && yum clean all
Loaded plugins: ovl, security, ulninfo
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package httpd.x86_64 0:2.2.15-54.0.1.el6_8 will be installed
--> Processing Dependency: httpd-tools = 2.2.15-54.0.1.el6_8 for package: httpd-2.2.15-54.0.1.el6_8.x86_64
--> Processing Dependency: apr-util-ldap for package: httpd-2.2.15-54.0.1.el6_8.x86_64
--> Processing Dependency: /etc/mime.types for package: httpd-2.2.15-54.0.1.el6_8.x86_64
--> Processing Dependency: libaprutil-1.so.0()(64bit) for package: httpd-2.2.15-54.0.1.el6_8.x86_64
--> Processing Dependency: libapr-1.so.0()(64bit) for package: httpd-2.2.15-54.0.1.el6_8.x86_64
---> Package perl.x86_64 4:5.10.1-141.el6_7.1 will be installed
--> Processing Dependency: perl-libs = 4:5.10.1-141.el6_7.1 for package: 4:perl-5.10.1-141.el6_7.1.x86_64
--> Processing Dependency: perl-libs for package: 4:perl-5.10.1-141.el6_7.1.x86_64
--> Processing Dependency: perl(Module::Pluggable) for package: 4:perl-5.10.1-141.el6_7.1.x86_64
--> Processing Dependency: perl(version) for package: 4:perl-5.10.1-141.el6_7.1.x86_64
--> Processing Dependency: perl(Pod::Simple) for package: 4:perl-5.10.1-141.el6_7.1.x86_64
--> Processing Dependency: libperl.so()(64bit) for package: 4:perl-5.10.1-141.el6_7.1.x86_64
--> Running transaction check
---> Package apr.x86_64 0:1.3.9-5.el6_2 will be installed
---> Package apr-util.x86_64 0:1.3.9-3.el6_0.1 will be installed
---> Package apr-util-ldap.x86_64 0:1.3.9-3.el6_0.1 will be installed
---> Package httpd-tools.x86_64 0:2.2.15-54.0.1.el6_8 will be installed
---> Package mailcap.noarch 0:2.1.31-2.el6 will be installed
---> Package perl-Module-Pluggable.x86_64 1:3.90-141.el6_7.1 will be installed
---> Package perl-Pod-Simple.x86_64 1:3.13-141.el6_7.1 will be installed
--> Processing Dependency: perl(Pod::Escapes) >= 1.04 for package: 1:perl-Pod-Simple-3.13-141.el6_7.1.x86_64
---> Package perl-libs.x86_64 4:5.10.1-141.el6_7.1 will be installed
---> Package perl-version.x86_64 3:0.77-141.el6_7.1 will be installed
--> Running transaction check
---> Package perl-Pod-Escapes.x86_64 1:1.04-141.el6_7.1 will be installed
--> Finished Dependency Resolution

Installed:
  httpd.x86_64 0:2.2.15-54.0.1.el6_8                                                             perl.x86_64 4:5.10.1-141.el6_7.1

Dependency Installed:
  apr.x86_64 0:1.3.9-5.el6_2                apr-util.x86_64 0:1.3.9-3.el6_0.1                   apr-util-ldap.x86_64 0:1.3.9-3.el6_0.1         httpd-tools.x86_64 0:2.2.15-54.0.1.el6_8
  mailcap.noarch 0:2.1.31-2.el6             perl-Module-Pluggable.x86_64 1:3.90-141.el6_7.1     perl-Pod-Escapes.x86_64 1:1.04-141.el6_7.1     perl-Pod-Simple.x86_64 1:3.13-141.el6_7.1
  perl-libs.x86_64 4:5.10.1-141.el6_7.1     perl-version.x86_64 3:0.77-141.el6_7.1

Complete!
Loaded plugins: ovl, security, ulninfo
Cleaning repos: public_ol6_UEKR4 public_ol6_latest
Cleaning up Everything
[root@4001fefe9b7a ~]#
[root@4001fefe9b7a ~]# rpm -qa|egrep 'http|perl'
httpd-tools-2.2.15-54.0.1.el6_8.x86_64
perl-Module-Pluggable-3.90-141.el6_7.1.x86_64
perl-libs-5.10.1-141.el6_7.1.x86_64
perl-5.10.1-141.el6_7.1.x86_64
httpd-2.2.15-54.0.1.el6_8.x86_64
perl-Pod-Escapes-1.04-141.el6_7.1.x86_64
perl-version-0.77-141.el6_7.1.x86_64
perl-Pod-Simple-3.13-141.el6_7.1.x86_64
[root@4001fefe9b7a ~]#
创建web测试文件
[root@4001fefe9b7a ~]# echo "This is for ohsdba testing" > /var/www/html/index.html
[root@4001fefe9b7a ~]# cat /var/www/html/index.html
This is for ohsdba testing
[root@4001fefe9b7a ~]#
程序安装完毕,退出容器
[root@4001fefe9b7a ~]# exit
exit
[ohsdba@ovm ~]$
创建自己定制的镜像
[ohsdba@ovm ~]$ docker commit -m "OEL6-httpd" `docker ps -l -q` ohsdba/httpd:v1
sha256:599786dd5c7cb9e2c5fef40b6a4adcecaab377b39cf49dd043a1ccb444c49a13
[ohsdba@ovm ~]$ docker images
REPOSITORY           TAG                 IMAGE ID            CREATED             SIZE
ohsdba/httpd         v1                  599786dd5c7c        6 seconds ago       223.1 MB
mysql/mysql-server   latest              43d4a6c26521        15 hours ago        369.1 MB
oraclelinux          latest              3d62999fc909        6 days ago          219.5 MB
oraclelinux          6                   175adfa05e40        10 weeks ago        223.1 MB
[ohsdba@ovm ~]$
容器guest任务完成,可以删除了
[ohsdba@ovm ~]$ docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                      PORTS               NAMES
4001fefe9b7a        oraclelinux:6       "/bin/bash"         48 minutes ago      Exited (0) 16 minutes ago                       guest
[ohsdba@ovm ~]$
[ohsdba@ovm ~]$ docker rm guest
guest
[ohsdba@ovm ~]$ docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
[ohsdba@ovm ~]$
运行定制的Docker image ohsdba/httpd
[ohsdba@ovm ~]$ docker images
REPOSITORY           TAG                 IMAGE ID            CREATED             SIZE
ohsdba/httpd         v1                  599786dd5c7c        16 minutes ago      223.1 MB
mysql/mysql-server   latest              43d4a6c26521        15 hours ago        369.1 MB
oraclelinux          latest              3d62999fc909        6 days ago          219.5 MB
oraclelinux          6                   175adfa05e40        10 weeks ago        223.1 MB
[ohsdba@ovm ~]$
docker run -d --name ohs1 -p 8080:80 ohsdba/httpd:v1 /usr/sbin/httpd -D FOREGROUND
docker run -d --name ohs2 -p 8081:80 ohsdba/httpd:v1 /usr/sbin/httpd -D FOREGROUND
docker run -d --name ohs3 -p 8082:80 ohsdba/httpd:v1 /usr/sbin/httpd -D FOREGROUND
[ohsdba@ovm ~]$ docker run -d --name ohs1 -p 8080:80 ohsdba/httpd:v1 /usr/sbin/httpd -D FOREGROUND
d9efbebc24e70e7703b1a3a4d4f1b35a0876c142d5cfc530a92b56bae4a00518
[ohsdba@ovm ~]$ docker run -d --name ohs2 -p 8081:80 ohsdba/httpd:v1 /usr/sbin/httpd -D FOREGROUND
970176e1d659674ece9fc2dc5a89df68acb7454a62e8ca360408424a7fa0ac12
[ohsdba@ovm ~]$
[ohsdba@ovm ~]$ docker run -d --name ohs3 -p 8082:80 ohsdba/httpd:v1 /usr/sbin/httpd -D FOREGROUND
da33d0878101b67380a705e956ce22795c15865fc4ad7e33df44d90d770a7921
[ohsdba@ovm ~]$
[ohsdba@ovm ~]$ docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                  NAMES
da33d0878101        ohsdba/httpd:v1     "/usr/sbin/httpd -D F"   5 seconds ago       Up 5 seconds        0.0.0.0:8082->80/tcp   ohs3
970176e1d659        ohsdba/httpd:v1     "/usr/sbin/httpd -D F"   16 seconds ago      Up 15 seconds       0.0.0.0:8081->80/tcp   ohs2
d9efbebc24e7        ohsdba/httpd:v1     "/usr/sbin/httpd -D F"   29 seconds ago      Up 28 seconds       0.0.0.0:8080->80/tcp   ohs1
[ohsdba@ovm ~]$
测试http程序
[ohsdba@ovm ~]$ curl http://ovm:8080
This is for ohsdba testing
[ohsdba@ovm ~]$ curl http://ovm:8081
This is for ohsdba testing
[ohsdba@ovm ~]$ curl http://ovm:8082
This is for ohsdba testing
[ohsdba@ovm ~]$


Docker日常维护常用操作

搜索镜像

[ohsdba@ovm ~]$ docker search oracle
NAME                             DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
wnameless/oracle-xe-11g          Oracle Express 11g R2 on Ubuntu 16.04 LTS       311                  [OK]
oraclelinux                      Oracle Linux is an open-source operating s...   234       [OK]
alexeiled/docker-oracle-xe-11g   This is a working (hopefully) Oracle XE 11...   171                  [OK]
sath89/oracle-xe-11g             Oracle xe 11g with database files mount su...   70                   [OK]
sath89/oracle-12c                Oracle Standard Edition 12c Release 1 with...   58                   [OK]
isuper/java-oracle               This repository contains all java releases...   43                   [OK]
oracle/oraclelinux               Oracle Linux is an open-source operating s...   30                   [OK]
ingensi/oracle-jdk               Official Oracle JDK installed on centos.        20                   [OK]
n3ziniuka5/ubuntu-oracle-jdk     Ubuntu with Oracle JDK. Check tags for ver...   9                    [OK]
airdock/oracle-jdk               Docker Image for Oracle Java SDK (8 and 7)...   9                    [OK]
oracle/openjdk                   Docker images containing OpenJDK Oracle Linux   9                    [OK]
cogniteev/oracle-java            Oracle JDK 6, 7, 8, and 9 based on Ubuntu ...   8                    [OK]
andreptb/oracle-java             Debian Jessie based image with Oracle JDK ...   7                    [OK]
oracle/nosql                     Oracle NoSQL on a Docker Image with Oracle...   4                    [OK]
openweb/oracle-tomcat            A fork off of Official tomcat image with O...   4                    [OK]
flurdy/oracle-java7              Base image containing Oracle's Java 7 JDK       3                    [OK]
oracle/glassfish                 GlassFish Java EE Application Server on Or...   3                    [OK]
infogene/oracle                  Image for running Oracle Database 11g Stan...   3                    [OK]
davidcaste/debian-oracle-java    Oracle Java 8 (and 7) over Debian Jessie        2                    [OK]
jtech/oracle-jdk                 A Docker image based on the smallest Linux...   2                    [OK]
kaluzki/oracle                   kaluzki/oracle                                  2                    [OK]
clincase/oracle                  clincase oracle db server image                 1                    [OK]
jckrz/debian-oracle-jdk          Vanilla Debian + Oracle JDK                     1                    [OK]
zeerdonker/docker-oracle-java    ubuntu:14.04 based oracle-java 8 build          0                    [OK]
expertsystems/oracle-jdk8        CentOS based base image with Oracle JDK 8       0                    [OK]
[ohsdba@ovm ~]$
如何停止/启动容器
[ohsdba@ovm ~]$ docker stop ohs1
ohs1
[ohsdba@ovm ~]$ docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                     PORTS                  NAMES
da33d0878101        ohsdba/httpd:v1     "/usr/sbin/httpd -D F"   42 minutes ago      Up 42 minutes              0.0.0.0:8082->80/tcp   ohs3
970176e1d659        ohsdba/httpd:v1     "/usr/sbin/httpd -D F"   42 minutes ago      Up 42 minutes              0.0.0.0:8081->80/tcp   ohs2
d9efbebc24e7        ohsdba/httpd:v1     "/usr/sbin/httpd -D F"   42 minutes ago      Exited (0) 5 seconds ago                          ohs1
[ohsdba@ovm ~]$ docker exec -i -t ohs1 bash
Error response from daemon: Container d9efbebc24e70e7703b1a3a4d4f1b35a0876c142d5cfc530a92b56bae4a00518 is not running
[ohsdba@ovm ~]$
[ohsdba@ovm ~]$ docker start ohs1
ohs1
[ohsdba@ovm ~]$
[ohsdba@ovm ~]$ docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                  NAMES
da33d0878101        ohsdba/httpd:v1     "/usr/sbin/httpd -D F"   43 minutes ago      Up 43 minutes       0.0.0.0:8082->80/tcp   ohs3
970176e1d659        ohsdba/httpd:v1     "/usr/sbin/httpd -D F"   43 minutes ago      Up 43 minutes       0.0.0.0:8081->80/tcp   ohs2
d9efbebc24e7        ohsdba/httpd:v1     "/usr/sbin/httpd -D F"   44 minutes ago      Up 5 seconds        0.0.0.0:8080->80/tcp   ohs1
[ohsdba@ovm ~]$

可通过exec可进入容器

[ohsdba@ovm ~]$ docker exec -i -t ohs1 bash
[root@d9efbebc24e7 /]# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/sdb1        11G 1003M  7.2G  13% /
tmpfs           3.9G     0  3.9G   0% /dev
tmpfs           3.9G     0  3.9G   0% /sys/fs/cgroup
/dev/sdb1        11G 1003M  7.2G  13% /etc/resolv.conf
/dev/sdb1        11G 1003M  7.2G  13% /etc/hostname
/dev/sdb1        11G 1003M  7.2G  13% /etc/hosts
shm              64M     0   64M   0% /dev/shm
tmpfs           3.9G     0  3.9G   0% /proc/kcore
tmpfs           3.9G     0  3.9G   0% /proc/timer_stats
tmpfs           3.9G     0  3.9G   0% /proc/sched_debug
[root@d9efbebc24e7 /]#
查看Docker网络
[ohsdba@ovm ~]$ ifconfig docker0
docker0   Link encap:Ethernet  HWaddr 02:42:9E:82:D7:D5
          inet addr:172.17.0.1  Bcast:0.0.0.0  Mask:255.255.0.0
          inet6 addr: fe80::42:9eff:fe82:d7d5/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:43617 errors:0 dropped:0 overruns:0 frame:0
          TX packets:53039 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:1752609 (1.6 MiB)  TX bytes:167582083 (159.8 MiB)

[ohsdba@ovm ~]$
[ohsdba@ovm ~]$ docker inspect -f '{{ .NetworkSettings.IPAddress }}' ohs1 ohs2 ohs3
172.17.0.2
172.17.0.3
172.17.0.4
[ohsdba@ovm ~]$
查看容器中top进程
[ohsdba@ovm ~]$ docker top ohs1
UID                 PID                 PPID                C                   STIME               TTY                 TIME                CMD
root                12849               12829               0                   00:21               ?                   00:00:00            /usr/sbin/httpd -D FOREGROUND
apache              12881               12849               0                   00:21               ?                   00:00:00            /usr/sbin/httpd -D FOREGROUND
apache              12882               12849               0                   00:21               ?                   00:00:00            /usr/sbin/httpd -D FOREGROUND
apache              12883               12849               0                   00:21               ?                   00:00:00            /usr/sbin/httpd -D FOREGROUND
apache              12884               12849               0                   00:21               ?                   00:00:00            /usr/sbin/httpd -D FOREGROUND
apache              12885               12849               0                   00:21               ?                   00:00:00            /usr/sbin/httpd -D FOREGROUND
apache              12886               12849               0                   00:21               ?                   00:00:00            /usr/sbin/httpd -D FOREGROUND
apache              12887               12849               0                   00:21               ?                   00:00:00            /usr/sbin/httpd -D FOREGROUND
apache              12888               12849               0                   00:21               ?                   00:00:00            /usr/sbin/httpd -D FOREGROUND
[ohsdba@ovm ~]
容器文件系统
[ohsdba@ovm ~]$ docker exec -i -t ohs1 bash
[root@970176e1d659 /]# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/sdb1        11G 1003M  7.2G  13% /
tmpfs           3.9G     0  3.9G   0% /dev
tmpfs           3.9G     0  3.9G   0% /sys/fs/cgroup
/dev/sdb1        11G 1003M  7.2G  13% /etc/resolv.conf
/dev/sdb1        11G 1003M  7.2G  13% /etc/hostname
/dev/sdb1        11G 1003M  7.2G  13% /etc/hosts
shm              64M     0   64M   0% /dev/shm
tmpfs           3.9G     0  3.9G   0% /proc/kcore
tmpfs           3.9G     0  3.9G   0% /proc/timer_stats
tmpfs           3.9G     0  3.9G   0% /proc/sched_debug
[root@970176e1d659 /]#
备份image文件
[ohsdba@ovm ~]$ docker save -o ohsdbaweb.tar ohsdba/httpd:v1
[ohsdba@ovm ~]$ ls -l ohsdbaweb.tar
-rw-------. 1 ohsdba ohsdba 284207616 Oct  5 00:37 ohsdbaweb.tar
[ohsdba@ovm ~]$
复制文件到其他机器上快速地部署
[ohsdba@oracle ~]$docker load -i ohsdbaweb.tar
[ohsdba@oracle ~]

删除容器

[ohsdba@ovm ~]$ docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                  NAMES
da33d0878101        ohsdba/httpd:v1     "/usr/sbin/httpd -D F"   About an hour ago   Up About an hour    0.0.0.0:8082->80/tcp   ohs3
970176e1d659        ohsdba/httpd:v1     "/usr/sbin/httpd -D F"   About an hour ago   Up About an hour    0.0.0.0:8081->80/tcp   ohs2
d9efbebc24e7        ohsdba/httpd:v1     "/usr/sbin/httpd -D F"   About an hour ago   Up About an hour    0.0.0.0:8080->80/tcp   ohs1
[ohsdba@ovm ~]$ docker stop ohs1
ohs1
[ohsdba@ovm ~]$ docker rm ohs1
ohs1
[ohsdba@ovm ~]$ docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                  NAMES
da33d0878101        ohsdba/httpd:v1     "/usr/sbin/httpd -D F"   About an hour ago   Up About an hour    0.0.0.0:8082->80/tcp   ohs3
970176e1d659        ohsdba/httpd:v1     "/usr/sbin/httpd -D F"   About an hour ago   Up About an hour    0.0.0.0:8081->80/tcp   ohs2
[ohsdba@ovm ~]$

删除image

[ohsdba@ovm ~]$ docker rmi ohsdba/httpd:v1
Untagged: ohsdba/httpd:v1
Deleted: sha256:599786dd5c7cb9e2c5fef40b6a4adcecaab377b39cf49dd043a1ccb444c49a13
Deleted: sha256:3095c626f0038fb9ea56ef005c6b303e963c04604d9d3355165b5c7183b1a302
[ohsdba@ovm ~]$ docker images
REPOSITORY           TAG                 IMAGE ID            CREATED             SIZE
mysql/mysql-server   latest              43d4a6c26521        15 hours ago        369.1 MB
oraclelinux          latest              3d62999fc909        6 days ago          219.5 MB
oraclelinux          6                   175adfa05e40        10 weeks ago        223.1 MB
[ohsdba@ovm ~]$

发布image

[ohsdba@ovm ~]$ docker push ohsdba/httpd
The push refers to a repository [docker.io/ohsdba/httpd]
304660277c8f: Preparing
581831b47c5f: Preparing
unauthorized: authentication required
[ohsdba@ovm ~]$

给容器指定memory,cpu大小

[ohsdba@ovm ~]$ docker run -d --memory=256m --cpu-shares=512 --name ohs -p 8080:80 ohsdba/httpd:v2
c307c7132420a02f86b84813af8b8b1520d656269eec925b1c4e7ee377ef9c36
[ohsdba@ovm ~]$
[ohsdba@ovm ~]$
[ohsdba@ovm ~]$ docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                  NAMES
c307c7132420        ohsdba/httpd:v2     "/bin/sh -c '/usr/sbi"   20 seconds ago      Up 19 seconds       0.0.0.0:8080->80/tcp   ohs
[ohsdba@ovm ~]$ curl http://ovm:8080
This is for ohsdba testing
[ohsdba@ovm ~]$ 




Reference

https://docs.oracle.com/cd/E52668_01/E75728/html/docker_install_upgrade.html
https://community.oracle.com/docs/DOC-914969

http://www.docker.org.cn/book/docker/what-is-docker-16.html

https://blog.csphere.cn/archives/22


关键词:docker vm cloud oracle 

相关文章

Oracle宣布推出全球分布式自治数据库
Oracle 23c新特性---开发人员
Oracle 23c free FAQ
Oracle 23c free and OCI Base Service
Oracle 21c
基于PDB的Active Data Guard(Oracle 21.7+)
在Oracle数据库中使用REST
OGG from MySQL to Oracle
Oracle数据库容灾之两地三中心实践
低代码开发用Oracle Apex,看这篇就够了
Oracle Database 20c之SQL宏
Java beginner for Oracle DBA
Top