創建容器常用的參數說明:
創建容器命令:
docker run
-i : 表示運行容器
-t : 表示容器啓動之後會進入命令行,加入這兩個參數後,容器就能登錄進去,即分配一個僞終端。
–name: 爲創建的容器命名
例如:docker run -it --name=容器名稱 鏡像名稱:版本(tag) /bin/bash
-v :標識目錄映射關係(前者是宿主機目錄,後者是映射到宿主機上的目錄),可以使用多個-v做多個目錄或者文件的映射
注意:最好做目錄映射,在宿主機上做修改,然後共享到容器上。
-d : 在run後面加上-d參數,則會創建一個守護容器在後臺運行(這樣創建容器後不會自動登錄容器,如果只加了-i -t 兩個參數,創建後會直接進入容器)
-p : 表示端口映射,格式爲 宿主機映射端口:容器運行端口,前者是宿主機的端口,後者是容器的端口,可以使用多個-p 做多個端口的映射
-e : 代表添加環境變量 MYSQL_ROOT_PASSWORD 是root用戶的登錄密碼
例:docker run -di --name=tensquare_mysql -p 33306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql
登錄守護式容器方式:
docker exec -it 容器名稱 (或者容器ID) /bin/bash
讓docker開機啓動:
systemctl enable docker
查詢docker運行狀態:
systemctl status docker
查看docker中所有的鏡像文件:
docker images
從遠程倉庫搜索一個鏡像:
docker search mysql
從遠端拉取一個鏡像:
docker pull mysql:5.7
查看正在運行的容器:
docker ps
查看所有的容器:
docker ps -a
查看最近創建的容器:
docker ps -l
根據條件過濾顯示的內容
docker ps -f status=exited
後臺創建啓動mysql容器:
docker run -di --name=mysql57 -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root mysql:5.7
登錄守護者線程
docker exec -it mysql /bin/bash
查看docker容器的詳細情況
docker inspect mysql57
指定IP地址返回值
docker inspect --format='{{.NetworkSettings.IPAddress}}' mysql57
docker安裝redis
docker run -di --name=myredis -p 6379:6379 redis
docker安裝ngnix
docker run -di --name=mynginx -p 80:80 nginx
docker安裝tomcat
docker run -di --name=mytomcat -p 8080:8080 -v /usr/local/webapps:/usr/local/tomcat/webapps tomcat
docker安裝jdk使用Dockerfile
創建並進入目錄
cd /usr/local/dockerjdk8
創建Dockerfile文件,內容如下:
#依賴鏡像名稱和ID
FROM centos:7
#指定鏡像創建者信息
MAINTAINER SHANG
#切換工作目錄
WORKDIR /usr
RUN mkdir /usr/local/java
#ADD 是相對路徑jar,把java添加到容器中
ADD jdk-8u231-linux-x64.tar.gz /usr/local/java/
#配置java環境變量
ENV JAVA_HOME /usr/local/java/jdk1.8.0_231
ENV JRE_HOME $JAVA_HOME/jre
ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib:$CLASSPATH
ENV PATH $JAVA_HOME/bin:$PATH
執行命令構建鏡像
docker build -t='jdk1.8' .
啓動docker鏡像
docker run -di --name=jdk18 jdk1.8
docker創建遠程私服
docker pull registry
啓動私有倉庫
docker run -di --name=registry -p 5000:5000 registry
修改daemon.json
vi /etc/docker/daemon.json
添加如下內容,保存退出
{"insecure-registries":["49.234.52.245:5000"]}
重啓docker服務
systemctl restart docker
標記此鏡像爲私有倉庫的鏡像
docker tag jdk1.8 49.234.52.245:5000/jdk1.8
向遠程私服推送鏡像
docker push 49.234.52.245:5000/jdk1.8
導入和導出容器:
如果要導出本地的某個容器,可以使用docker export命令
docker export NAME/ID > fileName.tar
可以使用 docker import 從容器快照文件中再導入爲鏡像,以下實例將快照文件 ubuntu.tar 導入到鏡像 test/ubuntu:v1:
cat docker/ubuntu.tar | docker import - test/ubuntu:v1
也可以通過指定 URL 或者某個目錄來導入,例如:
$ docker import http://example.com/exampleimage.tgz example/imagerepo