#系统环境centos最少是版本7

[root@localhost ~]# uname -a
Linux localhost.localdomain 3.10.0-327.el7.x86_64 #1 SMP Thu Nov 19 22:10:57 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux

#我已经安装过了

[root@localhost ~]# yum -y install docker
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: mirror.jdcloud.com
 * extras: mirror.jdcloud.com
 * updates: mirrors.tuna.tsinghua.edu.cn
Package 2:docker-1.13.1-103.git7f2769b.el7.centos.x86_64 already installed and latest version
Nothing to do

#启动、查看docker

[root@localhost ~]# systemctl start docker
[root@localhost ~]# systemctl status docker
● docker.service - Docker Application Container Engine
   Loaded: loaded (/usr/lib/systemd/system/docker.service; disabled; vendor preset: disabled)
   Active: active (running) since Wed 2019-10-30 19:46:44 CST; 39s ago
     Docs: http://docs.docker.com
 Main PID: 11582 (dockerd-current)
   CGroup: /system.slice/docker.service
           ├─11582 /usr/bin/dockerd-current --add-runtime docker-runc=/usr/libexec/docker/docker-runc-current --default-runtime=docker-runc --exec-opt native.cgroupdriv...
           └─11588 /usr/bin/docker-containerd-current -l unix:///var/run/docker/libcontainerd/docker-containerd.sock --metrics-interval=0 --start-timeout 2m --state-dir...

Oct 30 19:46:44 localhost.localdomain dockerd-current[11582]: time="2019-10-30T19:46:44.817846283+08:00" level=info msg="Loading containers: start."
Oct 30 19:46:44 localhost.localdomain dockerd-current[11582]: time="2019-10-30T19:46:44.827900183+08:00" level=warning msg="Running modprobe bridge br_netfilter failed ...
Oct 30 19:46:44 localhost.localdomain dockerd-current[11582]: time="2019-10-30T19:46:44.844246739+08:00" level=info msg="Firewalld running: false"
Oct 30 19:46:44 localhost.localdomain dockerd-current[11582]: time="2019-10-30T19:46:44.907587140+08:00" level=info msg="Default bridge (docker0) is assigned wi...address"
Oct 30 19:46:44 localhost.localdomain dockerd-current[11582]: time="2019-10-30T19:46:44.948857467+08:00" level=info msg="Loading containers: done."
Oct 30 19:46:44 localhost.localdomain dockerd-current[11582]: time="2019-10-30T19:46:44.949557485+08:00" level=warning msg="Not using native diff for overlay2, ... to fix"
Oct 30 19:46:44 localhost.localdomain dockerd-current[11582]: time="2019-10-30T19:46:44.959422114+08:00" level=info msg="Daemon has completed initialization"
Oct 30 19:46:44 localhost.localdomain dockerd-current[11582]: time="2019-10-30T19:46:44.959439921+08:00" level=info msg="Docker daemon" commit="7f2769b/1.13.1" ...n=1.13.1
Oct 30 19:46:44 localhost.localdomain systemd[1]: Started Docker Application Container Engine.
Oct 30 19:46:44 localhost.localdomain dockerd-current[11582]: time="2019-10-30T19:46:44.967216716+08:00" level=info msg="API listen on /var/run/docker.sock"
Hint: Some lines were ellipsized, use -l to show in full.

#搜索镜像

[root@localhost ~]# docker search centos
INDEX       NAME                                         DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
docker.io   docker.io/centos                             The official build of CentOS.                   5640      [OK]       
docker.io   docker.io/ansible/centos7-ansible            Ansible on Centos7                              125                  [OK]

#拉取镜像

[root@localhost src]# docker pull centos
Using default tag: latest
Trying to pull repository docker.io/library/centos ...
latest: Pulling from docker.io/library/centos
729ec3a6ada3: Pull complete
Digest: sha256:f94c1d992c193b3dc09e297ffd54d8a4f1dc946c37cbeceb26d35ce1647f88d9
Status: Downloaded newer image for docker.io/centos:latest

#查看镜像

[root@localhost src]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
docker.io/centos    latest              0f3e07c0138f        4 weeks ago         220 MB

#导入镜像

[root@localhost src]# docker load --input centos.tar

#导出镜像

[root@localhost src]# docker save -o centos.tar centos

#删除镜像

[root@localhost src]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
docker.io/nginx     latest              540a289bab6c        7 days ago          126 MB
docker.io/centos    latest              0f3e07c0138f        4 weeks ago         220 MB
[root@localhost src]# docker rmi 540a289bab6c(镜像的IMAGE ID)

 

[root@localhost src]# docker run centos /bin/echo "Hello world"
Hello world
[root@localhost src]# docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                    PORTS               NAMES
1eb782ca5ba3        centos              "/bin/echo 'Hello ..."   2 seconds ago       Exited (0) 1 second ago                       elastic_haibt

#开启一个mydocker的容器,启动tty和标准输入输出

[root@localhost src]# docker run --name mydocker -t -i centos /bin/bash
[root@5aaaea3cbb0a /]#

#启动停止的docker进程

[root@localhost src]# docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                            PORTS               NAMES
5aaaea3cbb0a        centos              "/bin/bash"              12 minutes ago      Exited (127) About a minute ago                       mydocker
1eb782ca5ba3        centos              "/bin/echo 'Hello ..."   16 minutes ago      Exited (0) 16 minutes ago                             elastic_haibt
79cfe0f6abd9        centos              "/bin/echo 'Hello ..."   3 hours ago         Exited (0) 3 hours ago                                hopeful_shaw
[root@localhost src]# docker start mydocker
mydocker
[root@localhost src]# docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                      PORTS               NAMES
5aaaea3cbb0a        centos              "/bin/bash"              13 minutes ago      Up 3 seconds                                    mydocker
1eb782ca5ba3        centos              "/bin/echo 'Hello ..."   17 minutes ago      Exited (0) 17 minutes ago                       elastic_haibt
79cfe0f6abd9        centos              "/bin/echo 'Hello ..."   3 hours ago         Exited (0) 3 hours ago                          hopeful_shaw

 #进入正在运行的docker容器中

#attach进入后退出docker进程也会结束

[root@localhost src]# docker attach mydocker
[root@5aaaea3cbb0a /]#

 

#获取docker的Pid(如果结果是0,则进程可能未启动)

[root@localhost src]# docker inspect -f "{{ .State.Pid }}" mydocker
12312

[root@localhost src]# nsenter -t 12312 -m -u -i -n -p
[root@5aaaea3cbb0a /]# ps -ef
UID        PID  PPID  C STIME TTY          TIME CMD
root         1     0  0 03:51 ?        00:00:00 /bin/bash
root        14     0  0 04:10 ?        00:00:00 -bash
root        27    14  0 04:10 ?        00:00:00 ps -ef

#如果没有nsenter命令可以用yum安装(yum -y install util-linux)

 [root@5aaaea3cbb0a /]# exit
logout
[root@localhost src]# docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                      PORTS               NAMES
5aaaea3cbb0a        centos              "/bin/bash"              46 minutes ago      Up 21 minutes                                   mydocker

#不进入容器执行命令EXEC

[root@localhost ~]# docker exec mydocker whoami
root

#exec也能进入容器内部

[root@localhost ~]# docker exec -it mydocker /bin/bash
[root@5aaaea3cbb0a /]#

 

* 参考oldboy视频整理

posted on 2019-11-08 15:27  Mr_星火  阅读(183)  评论(0编辑  收藏  举报